2010-03-16 55 views
3

我想在用戶嘗試關閉窗口時有確認框。關閉標籤前確認框

window.onbeforeunload = function (evt) { 
var message = 'Are you sure you want to leave, cause there are some unsaved changes?'; 
if (typeof evt == 'undefined') { 
evt = window.event; 

} 
if (evt) { 
evt.returnValue = message; 
} 

     return message; 

} 

的事情是我想檢查一個變量看重

var sncro=1; 

如果其值不等於1個,則該確認框應there..else沒有必要有一個確認。我無法想象這個..它很愚蠢,但我要求任何人都可以看看代碼。

+0

通過「導航走」,而不是關閉相關:http://stackoverflow.com/questions/925734/whats-this-in-javascript-onclick都與'解決onbeforeunload' 。 – 2014-07-10 21:44:32

回答

1

我認爲在頁面加載,你正在建立VAR sncro = 1;當一些數據改變時,你調整這個值。這裏是快速檢查:

window.onbeforeunload = function (evt) { 
    if (sncro != 1) { 
    var message = 'Are you sure you want to leave, cause there are some unsaved changes?'; 
    if (typeof evt == 'undefined') { 
     evt = window.event; 
    } 
    if (evt) { 
     evt.returnValue = message; 
    } 
    return message; 
    } 
} 
+0

@索尼:我會考慮使用'!=='。你有什麼應該工作,但真理和js中隱式類型轉換的概念可能相當混亂。 – 2010-03-16 08:48:50

+0

@Mads Ravn - 我同意!==,尤其是當與0比較時 - 但是當談論其他人的代碼時,我永遠不會在「JSLint」領域下得太過分,因爲你永遠不知道他們決定在哪裏做blah =「1」; if(blah!== 1)... – Fenton 2010-03-22 09:39:00

+0

@Fenton - 我可以編寫自己的JavaScript代碼而不是此確認框。 – 2017-05-18 07:49:44