ASP.NET Web表单应用程序突然抛出JavaScript错误

ASP.NET Web Forms Application Suddenly Throwing JavaScript Error

本文关键字:JavaScript 错误 突然 应用程序 NET Web 表单 ASP      更新时间:2023-09-26

不知道什么原因,一个ASP。. NET Web Forms应用程序,我已经工作了几个月,突然开始抛出这个JavaScript错误:

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

这个错误出现在一个动态的,只读的JavaScript文件,(我假设)ASP。. NET创建的。高亮显示错误的代码块如下:

_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的每个页面的页面加载。

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

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

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

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