2010-03-16 53 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