ここで、ロードが完了する前にIE9ブラウザーウィンドウを閉じているときに、ブラウザーが閉じられて再度開かれるという状況があります。これにより、Webアプリケーションがクラッシュします。Webサイトで調査した結果、この動作はIE9で導入された「ハングレジスタンス」機能によるものであることがわかりました。回避策として、ユーザーがウィンドウの閉じるボタンをクリックしたときに情報メッセージなどを表示すると、クラッシュを回避できます。私のhtmlファイルでは、これを行うために以下のコードを使用しています。
<script type="text/javascript">
var doneLoading = false;
window.onbeforeunload = confirmExit;
function confirmExit()
{
if(navigator.appVersion.indexOf("MSIE 9") != -1 && !doneLoading)
return "Closing this window before the page is fully loaded might cause the browser to crash. ";
}
</script>
'doneLoading'は、ウィンドウがコンテンツのロードを完了したかどうかを示す変数です。
私のアプリケーションでは、タグとその内部を持つマスターページでこのロジックを使用しています。'doneloading'変数は、フレームセットの'onload'イベントでtrueに設定されます。今私の問題は、上記のJavaスクリプトコードが常に実行されておらず、ブラウザがクラッシュするというIEの警告メッセージが常に表示されないことです。このメッセージが常に表示されない理由について、いくつかの情報を提供してください。