[英]JavaScript alert before closing the tab
這是我的JavaScript代碼:
window.onbeforeunload = function (e) {
e = e || window.event;
// For IE and Firefox prior to version 4
if (e) {
e.returnValue = 'Any unsaved work is going to loose!';
}
// For Safari
return 'Any unsaved work is going to loose!';
};
當我嘗試關閉選項卡時,此代碼非常有效。 但問題是,即使我嘗試導航到我網站的另一個頁面,它也會提醒。
當且僅當用戶嘗試關閉選項卡時,可能只顯示警報的通用JS代碼是什么?
不幸的是,javascript中沒有純粹的“關閉”事件。 onunload & onbeforeunload是你能做的最好的事情。
副作用是在導航和后退瀏覽器按鈕上觸發這些事件。 您可以嘗試使用(e.clientY <0)條件來過濾頁面上的導航。
然后檢查window.location是否已更改。
window.onbeforeunload = function (e) {
if (document.location.href.indexOf('?x=hostname') > -1) {
e = e || window.event;
// For IE and Firefox prior to version 4
if (e) {
e.returnValue = 'Any unsaved work is going to loose!';
}
// For Safari
return 'Any unsaved work is going to loose!';
}
};
如果您認為e.target很好,那就找出e.target
if (e.target != myATagsOrButtons){
....插入你的代碼
另外一件事是你可以將if isWorking變量設置為true,如果他們已經在表單中輸入了東西,那么如果他們在表單中輸入了東西,那么無論如何導航都可能對他們不利。
<input type='text' onkeydown='isUpdating()'>
然后檢查以確保更新。
為什么不嘗試添加一個條件來檢查用戶是否正在遠離域導航,如果是,則發出警報
window.onbeforeunload = function (e) {
e = e || window.event;
// For IE and Firefox prior to version 4
if (e && window.location.indexOf("www.mysite.com") > -1) {
e.returnValue = 'Any unsaved work is going to loose!';
}
// For Safari
return 'Any unsaved work is going to loose!';
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.