私のサイトのユーザーがウィンドウ/タブを閉じるか、URLを変更したかどうかは現在検出しています。javascript on window closeイベント
私は完璧に動作follwoingコードを、使用しています:
var validNavigation = false;
function endSession() {
// Browser or broswer tab is closed
// Do sth here ...
alert("bye");
}
function wireUpEvents() {
window.onbeforeunload = function() {
if (!validNavigation) {
endSession();
}
}
// Attach the event keypress to exclude the F5 refresh
$(document).bind('keypress', function(e) {
if (e.keyCode == 116){
validNavigation = true;
}
});
// Attach the event click for all links in the page
$("a").bind("click", function() {
validNavigation = true;
});
// Attach the event submit for all forms in the page
$("form").bind("submit", function() {
validNavigation = true;
});
// Attach the event click for all inputs in the page
$("input[type=submit]").bind("click", function() {
validNavigation = true;
});
}
$(document).ready(function() {
wireUpEvents();
});
私の問題は、私は、オーバーレイにアラートからのイベントを変更したいです。私は隠されたdivのオーバーレイをセットアップを持っているとして上記のコードで警告を置き換える:
$('.overlay').css('display','block');
ページに滞在するユーザーを取得するためのdiv内には何もないとこれはもはや、動作します。 (ユーザーはアラート内のボタンをクリックする必要はありません)
この問題を回避する方法の提案はありますか?
いいえ、
は、なぜあなたは、単に 'window.onbeforeunload'を使用していませんか?私はそれが素晴らしいdiv 'ではないことを知っているが、それは間違いなくこれらの種類のものを意図している。 – Powerslave
window.onbeforeunloadはオプションでしたが、今はスタイリングが必要な素晴らしいdivが必要です。 – danyo
重複してhttp://stackoverflow.com/questions/276660/how-can-i-override-the-onbeforeunload-dialog-and-replace-it-with-my-own/276739 –