【问题标题】:ASP.NET Web Forms Application Suddenly Throwing JavaScript ErrorASP.NET Web 窗体应用程序突然抛出 JavaScript 错误
【发布时间】:2016-09-26 15:48:40
【问题描述】:

由于某种未知的原因,我几个月来一直在开发的 ASP.NET Web 窗体应用程序突然开始抛出这个 JavaScript 错误:

JavaScript 运行时错误:对象不支持属性或方法 'indexOf'。

此错误出现在(我假设)ASP.NET 创建的动态只读 JavaScript 文件之一中。突出显示错误的代码块是这样的:

_applyWatermark : function() {
        // Apply the watermark to the textbox
        var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element());
        wrapper.set_Watermark(this._watermarkText);
        wrapper.set_IsWatermarked(true);

        if(!this._watermarkCssClass)
            return;

        var classList = this.get_element().className.split();
        if(classList.indexOf(this._watermarkCssClass) === -1) {
            classList.push(this._watermarkCssClass);
            this.get_element().className = classList.join(" ");
        }
    }

Visual Studio 调试器特别指出这一行是上述错误的根源:

if(classList.indexOf(this._watermarkCssClass) === -1) {

使用一些上下文线索,我可以看到该错误似乎与我正在使用的Watermark extenders 有关。 classList 变量显然没有被赋予正确的值,但我不知道为什么会突然发生这种情况。此应用程序以前从未抛出此错误。

不幸的是,这个应用程序是专有的,所以我不能包含代码。相信我,如果可以的话,我会加入代码来解决这个令人头疼的问题。

我应该补充一点,在每个包含Watermark extender 的页面上加载页面时都会发生此错误。

如果这个问题描述性不够,或者它属于其他地方,请告诉我。我真的不知道发生了什么。感谢您的帮助。

【问题讨论】:

  • 我注释掉了水印扩展器,应用程序运行没有错误。很有趣。

标签: javascript asp.net webforms


【解决方案1】:

经过进一步调查,我发现我的一些母版页中的<meta> 标签导致了问题。 content 属性应设置为IE=edge。应该这样读:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

我不完全确定为什么这会突然导致应用程序崩溃,但它似乎已经解决了问题。我希望这对以后的人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多