1

ExtJS アプリケーションを開発していますが、Internet Explorer との互換性の問題があります。アプリが中断し、次のコード行に対応するエラーがスローされます。

execScript(code);

IE Developer Tools を使用して、code 変数にカスタム コンポーネントのクラス宣言が含まれていることがわかりました。このエラーの原因がわかりません。このファイルをすでに 3 回チェックしました (1400 行のコード)。記録のために、これは Firefox と Chrome で完全に動作します...

それで、何がうまくいかなかったのかをもっと知り、行番号やスタックトレースのようになる方法があるのではないかと思っていたので、これを修正することができます.

どんな助けでも感謝します。ありがとう !

4

1 に答える 1

0

まったく同じ問題がありました。

問題の原因を突き止めるのに長い時間がかかりましたが、私たちのケースでは、2 つの別個のオブジェクト リテラル (Status と StatusElements) から double 配列を作成していました。下記参照。

Status = {
    'new': 10,
    'automatic': 15}

StatusElements = {
    10: { name: 'new', color: 'black', bgcolor: '#ffd3cf'},
    15: { name: 'automatic', color: 'black', bgcolor: '#'}}

var y =  [
    [Status.new, StatusElements[Status.new].name],
    [Status.automatic, StatusElements[Status.automatic].name]
    ]

上記の y を評価しようとすると、何らかの理由で Internet Explorer が爆発します。

正直なところ、なぜ execScript(code); なのかわかりません。Internet Explorer では上記のコードで失敗します。評価順なのかもしれません。Status と StatusElements を評価する前に y を評価しようとするかもしれません。とにかく、複雑さを減らし、y を生の値に等しくすることで修正しました。

于 2014-08-04T09:50:39.427 に答える