【发布时间】: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