11
我目前正在檢測我的網站用戶是否關閉窗口/選項卡或更改網址。關於窗口關閉事件的javascript
我使用的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 2013-05-14 10:40:09
window.onbeforeunload是一個選項,但現在我需要一個花哨的div,需要樣式。 – danyo 2013-05-14 10:42:19
複製到http://stackoverflow.com/questions/276660/how-can-i-override-the-onbeforeunload-dialog-and-replace-it-with-my-own/276739 – 2013-05-14 11:38:45