Javascript 关闭选项卡前确认框

Javascript 关闭选项卡前确认框,javascript,webbrowser-control,Javascript,Webbrowser Control,当用户试图关闭窗口时,我希望有一个确认框 window.onbeforeunload=函数(evt){ var message='您确定要离开,因为有一些未保存的更改吗?'; 如果(evt的类型==‘未定义’){ evt=window.event; } 如果(evt){ evt.returnValue=消息; } 返回消息; } 问题是我想检查一个变量值 var sncro=1; 如果其值不等于1,则此确认框应存在,否则无需进行确认。我想不出来。这太傻了,但我要求任何人都可以查看代码。我假设

当用户试图关闭窗口时,我希望有一个确认框

window.onbeforeunload=函数(evt){
var message='您确定要离开,因为有一些未保存的更改吗?';
如果(evt的类型==‘未定义’){
evt=window.event;
}
如果(evt){
evt.returnValue=消息;
}
返回消息;
}
问题是我想检查一个变量值

var sncro=1;

如果其值不等于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;
  }
}

@ Sohnee:我会考虑使用“!==”。您所拥有的应该是可行的,但是js中的真值和隐式类型转换的概念可能会非常混乱。@Mads Ravn-我同意!==特别是当与0相比时——但我在谈论其他人的代码时,从来不会深入到“JSLint”领域,因为你永远不知道他们决定在哪里执行blah=“1”;如果(blah!==1).@Fenton-我可以编写自己的javascript代码而不是此确认框。是否有任何特定方法仅在浏览器或选项卡关闭操作上使用,而不是在导航上使用?与“导航离开”而不是关闭相关:均通过
onbeforeunload
解决。