Internet Explorer 9 以降で開いた子ウインドウを素早く閉じると親ウインドウが開き直される場合があります

現象

Internet Explorer 9 以降で、window.open で新しい IE ウインドウを起動した後、子画面を素早く閉じると、親画面で 「この Web ページに問題があるため、Internet Explorer のタブを開き直しました」のメッセージが表示され、開き直される場合があります。

原因

この現象は Internet Explorer 9以降に搭載されたハング回復機能に起因した想定した動作です。
子画面が初期化の最中にビジー状態になり、その最中に閉じられると、ハング回復が行われる場合があります。この時ビジーになったウインドウ (このシナリオでは子画面) だけを回復することができません。同一タブプロセス内で動作している全ての画面を一緒に回復する必要があるため、親ウインドウが開き直されます。

解決方法

この現象を解消するためには、新しいウインドウ/タブの初期化中にウインドウ/タブを閉じないようにしてください。
新しいウインドウ/タブの初期化中にビジーになっても、閉じる操作をしなければハング回復機能は動作しないため現象が発生しません。初期化完了後にビジー状態から解除された以後はウインドウを閉じても現象が発生しません。

回避策

ハング回復機能を禁止することにより、この現象を回避できます。

ハング回復機能を完全に無効にするには、IE を -nohangrecovery のオプションを指定して起動する (例: iexplore.exe -nohangrecovery)、或いは以下のレジストリを設定します。

キー : HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main
名前 : HangRecovery
種類 : REG_DWORD
値 : 2 

状況

この事象はハング回復機能による制限事項です。

詳細

この現象は特定のサイトではなく、初期化の際にある程度時間がかかる子ウインドウであれば発生しえます。

関連情報

IE9 のハング処理機能
http://blogs.msdn.com/b/ie_jp/archive/2011/08/10/10194401.aspx
プロパティ

文書番号:2910078 - 最終更新日: 2016/09/30 - リビジョン: 1

Internet Explorer 11, Windows Internet Explorer 10, Windows Internet Explorer 9

フィードバック