注: 申し訳ありませんが、この記事をサポートするコードはまだありません (機密性の高い製品コードのみ)。後で時間が許せば、簡潔な作業サンプルを提供しようとします。同様の問題を追跡する際に他の人にヒントを提供できることを期待して、これを公開したかった.
使用する
- インターネットエクスプローラー9.
- jQuery 1.9.2 および 2.0.0。
- HTML5 文書型
シナリオ
- 論理的な「画面」に分割されたページがあります。
- 各画面は、クラス名 (「formScreen」、「errorScreen」、「confirmationScreen」など) で識別される DIV です。
- 「.formScreen」にはフォーム (データ入力) フィールドが含まれており、ページ全体には、フォーム データから JSON パッケージを生成し、AJAX ポストバックを実行する単一の送信ボタンがあります。
- 「特定の方法で」フォームに入力し (フォームに入力する順序に違いがあるようです)、送信します。
- 送信によって応答が受信された後、コードは表示を更新します。
問題
送信後にすべての「formScreen」DIV を非表示にすると、IE9 が完全にクラッシュします。
最初に、formScreens 変数を定義します。
var formScreens = $(".formScreens");
その後、次のように呼び出します。
$(formScreens).hide();
これにより、IE がクラッシュします。
次のことも試しましたが、どちらのオプションでもクラッシュが発生します。
var copyOfFormScreens = $("div.formScreen");
$(copyOfFormScreens).each(function ()
{
$(this).hide(); // Option 2: This fails too.
$(this).css("display", "none"); // Option 3: This fails too.
});
IE クラッシュ エラー
クラッシュ時に IE から以下が返されました。
問題の署名: 問題イベント名: APPCRASH アプリケーション名: IEXPLORE.EXE アプリケーションのバージョン: 9.0.8112.16496 アプリケーションのタイムスタンプ: 51a55c6d 障害モジュール名: MSHTML.dll 障害モジュールのバージョン: 9.0.8112.16496 障害モジュールのタイムスタンプ: 51a55ff0 例外コード: c00000fd 例外オフセット: 0032ef01 OS バージョン: 6.1.7601.2.1.0.256.48 ロケール ID: 3081 追加情報 1: 39a4 追加情報 2: 39a4d7f18c1c7c725934453009d2f1b9 追加情報 3: ddcf 追加情報 4: ddcfafd1b35f05f847ac8d3e7a7bcf12
また、Visual Studio でデバッグする場合は次のようになります。
iexplore.exe の 0x6302EF01 (mshtml.dll) で未処理の例外: 0xC00000FD: スタック オーバーフロー (パラメーター: 0x00000001、0x02432F68)。 iexplore.exe の 0x630A172B (mshtml.dll) で未処理の例外: 0xC0000005: アクセス違反の書き込み場所 0x02430FFC。// このエラーは、デバッグの「続行」を押しても表示され続けました。