IE10中的Javascript错误(SCRIPT5022)

时间:2013-09-22 08:29:48

标签: javascript ajax internet-explorer-10

我写了这段代码:

AjxException.reportScriptError =
 function(ex) {
if (AjxException.reportScriptErrors && AjxException.scriptErrorHandler && !(ex    
       instanceof AjxException)) {
    AjxException.scriptErrorHandler(ex);
}
throw ex;
};

在包括IE9,8在内的所有浏览器中都没问题,但我在IE10中遇到了这个错误:

 SCRIPT5022: InvalidCharacterError 

提及throw ex; 为什么在IE10中会发生这种情况?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

最终,我发现代码有什么问题: javascript代码是为IE的旧版本编写的:IE7, IE8, IE9并使用了这一行:

var ninput = document.createElement(AjxEnv.isIE ? ["<INPUT type='",type,"'>"].join("") :  
"INPUT"); 

为了创建INPUT元素。它在旧版IE中运行良好,但在IE10中没有。 所以,我不得不使用这个:

var ninput = document.createElement((AjxEnv.isIE && !AjxEnv.isIE10up)? ["<INPUT 
type='",type,"'>"].join("") : "INPUT");

现在,它正在发挥作用。

答案 1 :(得分:0)

您的文件是否在没有BOM(字节顺序标记)的情况下保存?那些经常会甩掉解析器并造成严重破坏。

我还建议您将代码切换到尽可能多的行,以确定哪个行存在问题,然后将其删除以用于测试目的,这样您就能够快速确定问题所在。< / p>

例如,你可能指的是一个错误类型的对象(使用一个数组,并且该对象恰好是一个字符串),所以如果你移除一个对象并且它可以工作(或者工作得更好),试试{{ 1}}给你一些进一步的见解。

此外,您似乎有多个alert('typeof myObject = '+typeof myObject);实例,请确保您没有使用字符串一个名为ex的函数。