[解決済み] 戻るボタンをクリックしたときに、クロスブラウザのonloadイベントが発生しますか?
2022-04-14 07:47:33
質問
主要なブラウザ(IEを除く)において、JavaScriptの
onload
イベントは、バックボタン操作の結果としてページが読み込まれたときには発生しません。
この問題を解決するクロスブラウザのサンプルコード(Firefox、Opera、Safari、IE、...)をどなたか教えてください。私は、Firefoxの
pageshow
イベントがありますが、残念ながらOperaもSafariもこれを実装していません。
解決方法は?
みんな、JQueryの効果はただ一つ、戻るボタンが押されたときにページが再読み込みされることだとわかった。これは、"とは関係ないんだ。 レディ となります。
これはどのように機能するのでしょうか?さて、JQueryは オンアンロード イベントリスナーです。
// http://code.jquery.com/jquery-latest.js
jQuery(window).bind("unload", function() { // ...
デフォルトでは、何もしません。しかし、Safari、Opera、Mozillaでは、イベントハンドラが何を含んでいても、なぜか再読み込みの引き金になるようです。
[ 編集(Nickolay) : なぜそのように動作するのか、その理由を説明します。 webkit.org , 開発者.mozilla.org . これらの記事 (または以下の別の回答で私がまとめたもの) を読んで、次のことを検討してください。 本当に を行う必要があり、ユーザーにとってページの読み込みが遅くなる] 。
信じられませんか?これを試してみてください。
<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>
関連
-
jQueryのコピーオブジェクトの説明
-
vueはopenlayersを使用してスカイマップとガオードマップをロードする
-
Vueのイベント処理とイベントモディファイアの解説
-
[解決済み】Node.js Error: Cannot find module express
-
[解決済み】React Uncaught Error: 対象コンテナが DOM 要素でない [重複]。
-
nodejs unhandledPromiseRejectionWarning メッセージ
-
[解決済み] HTMLボタンやJavaScriptをクリックしたときにファイルをダウンロードさせる方法
-
[解決済み] 貼り付けイベントでクリップボードのデータを取得するJavaScript (クロスブラウザ)
-
[解決済み】すべてのモダンブラウザでページのズームレベルを検出する方法は?
-
[解決済み】ブラウザの戻るボタンのイベントを検出する方法 - クロスブラウザ編
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
vue3.0プロジェクトのアーキテクチャを構築するための便利なツール
-
vueが定義するプライベートフィルタと基本的な使い方
-
VUEグローバルフィルターの概念と留意点、基本的な使い方
-
Vueのフィルタの説明
-
[解決済み】React - uncaught TypeError: 未定義のプロパティ 'setState' を読み取れない
-
[解決済み】JavaScriptの配列でforEachが関数でない不具合
-
[解決済み】JavaScriptエラー(Uncaught SyntaxError: Unexpected end of input)
-
[解決済み】 `string.split is not a function` というエラーの原因は何ですか?
-
[解決済み】エラー。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりませんでした。
-
[解決済み】全てのブラウザで、Webページのキャッシュを制御するには?