Internet Explorer 11 でスクリプトの onload イベントが発生しないことがある

現象
Internet Explorer 11 の 戻るボタンを押してページを戻ると、戻り先ページの onload イベントが発生しないことがあります。
原因
"戻るナビゲーションキャッシュ機能" が有効なIEでは、メモリ上にコンテンツを保持しており、戻るボタン押下時にこのメモリからコンテンツを復元しています。このとき、ページの再解析は行われないため、スクリプトの解析や実行も行いません。このため、グローバルのスクリプトや BODYエレメントの onload イベントが発生しません。
解決方法
以下のいずれかの方法で回避できます。

1. onpageshow イベントを利用する。
"戻るナビゲーションキャッシュ機能" が有効なIEでは、戻るボタン押下時にonload イベントの代わりに onpageshow イベントが発生します。
そのため、onpageshow イベントを利用していただくことで回避できます。

2.  戻るナビゲーションのキャッシュ機能が働かないようにする。
戻るナビゲーションのキャッシュ機能が有効となる条件は、以下のとおりです。この条件を外していただくことで動作を回避できます。

* "インターネット" ゾーンで表示している。
* HTTP: プロトコルを使って表示される (HTTPS ページは、セキュリティ上の理由からキャッシュされません)。
* ページで beforeunload イベント ハンドラーが定義されていない。
* load イベントと pageshow イベントがすべて完了している。
* ページに次のいずれも含まれない。
  - indexedDB トランザクションが保留されている。
  - Web ソケット接続が開かれているか、アクティブである。
  - Web ワーカーが動作中である。
  - Microsoft ActiveX コントロール。* F12 開発者ツールのウィンドウが開いていない。
状況
この動作は仕様です。
詳細
戻るナビゲーションのキャッシュについては、以下の資料をご参考ください。

戻るナビゲーションのキャッシュ
http://msdn.microsoft.com/ja-jp/library/ie/dn265017(v=vs.85).aspx
注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。
プロパティ

文書番号:3011939 - 最終更新日: 09/29/2016 15:53:00 - リビジョン: 4.0

  • kbtshoot kbexpertiseadvanced KB3011939
フィードバック