onload
すべての主要ブラウザ (IE を除く) では、戻るボタン操作の結果としてページが読み込まれたときにはJavaScriptイベントは発生せず、ページが最初に読み込まれたときにのみ発生します。
この問題を解決するクロスブラウザ コード (Firefox、Opera、Safari、IE など) のサンプルを教えていただけませんか? Firefox のpageshow
イベントについてはよく知っていますが、残念ながら Opera も Safari もこれを実装していません。
ベストアンサー1
皆さん、JQuery には 1 つの効果しかないことがわかりました。戻るボタンが押されたときにページが再読み込みされるのです。これは "準備ができて「」。
これはどのように機能するのでしょうか?JQueryはオンアンロードイベント リスナー。
// http://code.jquery.com/jquery-latest.js
jQuery(window).bind("unload", function() { // ...
デフォルトでは何も行われません。しかし、イベント ハンドラに何が含まれているかに関係なく、何らかの理由で Safari、Opera、Mozilla でリロードがトリガーされるようです。
[編集(ニコライ): なぜそのように動作するのか、その理由は次のとおりです。ウェブキット、開発者:これらの記事(または以下の別の回答の私の要約)を読んで、本当にこれを実行する必要があり、ユーザーにとってページの読み込みが遅くなります。
信じられませんか? これを試してみてください:
<body onunload=""><!-- This does the trick -->
<script type="text/javascript">
alert('first load / reload');
window.onload = function(){alert('onload')};
</script>
<a href="http://stackoverflow.com">click me, then press the back button</a>
</body>
JQuery を使用した場合にも同様の結果が表示されます。
これを比較すると、オンアンロード
<body><!-- Will not reload on back button -->
<script type="text/javascript">
alert('first load / reload');
window.onload = function(){alert('onload')};
</script>
<a href="http://stackoverflow.com">click me, then press the back button</a>
</body>