Web ページの機能が継続的に強化されているため、ユーザーの行動を監視し、処理する必要がある Web ページがますます増えています。その中で、最も一般的な動作の 1 つは、ユーザーがブラウザ ウィンドウを閉じることです。ただし、この機能の実装はブラウザによって若干異なる場合があります。今日は、jQuery が Google Chrome でウィンドウを閉じるイベントをどのように処理するかについて説明します。
1. window のアンロード イベント
ウィンドウを閉じるイベントは、実際には window オブジェクトの unload イベントによって実現できます。アンロード イベントは、ウィンドウまたはフレームがアンロードされるときにトリガーされます。以下は、純粋な JavaScript を使用してウィンドウ終了イベントを実装する例です。
window.onunload = function() { alert("窗口即将关闭!"); }
この例では、ブラウザ ウィンドウが閉じられると、イベントの発生をユーザーに通知するプロンプト ボックスがポップアップ表示されます。 。ただし、アンロード イベントの使用には問題があります。アンロード イベントは、ブラウザが他のページにジャンプしたときにもトリガーされます。したがって、ページ内のリンクをクリックすると、アンロード イベントもトリガーされます。これはプログラマにとって問題を引き起こすことがよくあります。
2. jQuery のアンロード イベント
アンロード イベントの問題を解決するために、jQuery は独自のアンロード イベントを提供します。これは、ブラウザが別のページにジャンプしたときではなく、ブラウザ ウィンドウが閉じられたときにのみ起動されます。以下は、jQuery を使用してウィンドウ終了イベントを実装する例です:
$(window).on("unload", function() { alert("窗口即将关闭!"); });
この例では、$(window) セレクターがウィンドウ オブジェクトを選択し、on() メソッドを使用してアンロード イベントをバインドします。 。ウィンドウを閉じると、プロンプト ボックスが表示されます。
3. Google Chrome の特殊な処理
jQuery のアンロード イベントはほとんどのブラウザで正常に動作しますが、Google Chrome では注意が必要な特殊な状況があります。
Google Chrome では、Web ページに実行中のプラグイン (Flash など) が含まれている場合、ユーザーがブラウザを閉じると、プラグインが存在するプロセスはすぐには終了せず、終了します。終了まで少し時間がかかります。この場合、アンロード イベントが発生しない可能性があります。
この問題を解決するには、beforeunload イベントを使用します。このイベントはウィンドウが閉じる前に発生し、文字列を返すことでウィンドウを閉じるイベントをキャンセルできます。以下は、Google Chrome で beforeunload イベントを使用する例です。
$(window).on("beforeunload", function() { return "确定要离开吗?"; });
この例では、ユーザーがブラウザを閉じると、ユーザーに本当に終了するかどうかを尋ねるプロンプト ボックスが表示されます。ユーザーが「キャンセル」ボタンをクリックした場合、ブラウザは終了しません。
Web ページに実行中のプラグインが含まれている場合、Google Chrome では、beforeunload イベントを使用しても、ウィンドウを閉じるイベントを完全には正確にキャプチャできないことに注意してください。したがって、実際には、Web ページでプラグインを実行しないようにする必要があります。
結論
上記の議論を通じて、次の結論を導き出すことができます:
つまり、ウィンドウを閉じるイベントを実装するには、さまざまなブラウザ環境に応じた特別な処理が必要になります。実際には、特定の状況に応じて適切なイベント処理方法を選択し、さまざまな状況を十分にテストする必要があります。
以上がjQuery と Google Chrome の終了イベントについて話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。