2

私はこのコードを書きました:

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で発生するのか、どうすればこれを解決できますか?

4

2 に答える 2

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");

今、それは働いています。

于 2013-09-29T08:41:58.033 に答える
0

ファイルは BOM (バイト オーダー マーク) なしで保存されていますか? それらはしばしばパーサーをスローし、大混乱を引き起こす可能性があります。

また、コードをできるだけ多くの行に分割して、どの行に問題があるかを特定し、テスト目的でそれを削除することをお勧めします。そうすれば、問題の内容をすばやく特定できます。

たとえば、間違ったタイプのオブジェクトを参照している可能性があります (たとえば、配列を操作していて、オブジェクトがたまたま文字列である場合)。そのため、オブジェクトを削除してそれが機能する (またはわずかに良く機能する)alert('typeof myObject = '+typeof myObject);場合は、さらにいくつかの情報を提供してください。洞察。

また、 の複数のインスタンスがあるようです。ex文字列関数の両方を使用していないことを確認してくださいex

于 2013-09-22T11:23:56.913 に答える