ユーザーがページの再読み込み/ブラウザの終了/ページの終了を選択する前に機能を実行する方法はありますか?
私が書こうとしている「オンライン/オフライン」ステータス機能にこれが必要です。ユーザーがまだページにいるかどうかを検出したい。
何か案は?:)
たぶん、これに対するより良いアプローチがありますか?
ユーザーがページの再読み込み/ブラウザの終了/ページの終了を選択する前に機能を実行する方法はありますか?
私が書こうとしている「オンライン/オフライン」ステータス機能にこれが必要です。ユーザーがまだページにいるかどうかを検出したい。
何か案は?:)
たぶん、これに対するより良いアプローチがありますか?
インライン関数:
window.onbeforeunload = function(evt) {
// Cancel the event (if necessary)
evt.preventDefault();
// Google Chrome requires returnValue to be set
evt.returnValue = '';
return null;
};
またはイベントリスナー経由(推奨):
window.addEventListener("beforeunload", function(evt) {
// Cancel the event (if necessary)
evt.preventDefault();
// Google Chrome requires returnValue to be set
evt.returnValue = '';
return null;
});
またはjQueryがある場合:
$(window).on("beforeunload", function(evt) {
// Cancel the event (if necessary)
evt.preventDefault();
// Google Chrome requires returnValue to be set
evt.returnValue = '';
return null;
});
ノート:
このイベントがvoid以外の値を返すと、ユーザーはページのアンロードを確認するように求められます。ほとんどのブラウザでは、イベントの戻り値がこのダイアログに表示されます。
2011年5月25日以降、HTML5仕様では、window.showModalDialog()、window.alert()、window.confirm()、およびwindow.prompt()メソッドの呼び出しはこのイベント中に無視される可能性があると規定されています。
https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunloadのドキュメントを参照してください
window.onbeforeunloadを使用します。これは、ユーザーがページを離れたときにトリガーされます:http: //geekswithblogs.net/hmloo/archive/2012/02/15/use-window.onbeforeunload-event-to-stop-browser-from-closing-または-disable.aspx
これを試して:
$( window ).unload(function() {
alert( "Handler for .unload() called." );
});
または、コンフォメーションアラートが必要な場合はこれ
<script>
window.onbeforeunload = function(e) {
return 'Your dialog message';
};
</script>