当用户点击某些内容时,onbeforeunload会不断弹出警告框

时间:2012-08-13 17:22:50

标签: javascript javascript-events

我创建了一个页面,当用户单击窗口上的(关闭x)按钮时会向用户发出警告。我进行了一些阅读,并发现javascript有一个名为onbeforeonload的函数,可以完成我试图实现的工作。然而,我在实现后发现,当用户点击我窗口中的任何内容时(例如,保存并输入)对话框会重新出现。我想知道如何只能在窗口中定位特定的X按钮。

    window.onbeforeunload = function (evt) {
  var message = 'Do you want to leave?';
  if (typeof evt == 'undefined') {
    evt = window.event;
  }
  if (evt) {
    evt.returnValue = message;
  }
  return message;
} 

2 个答案:

答案 0 :(得分:0)

现在正在全局调用该函数...此资源可以帮助您实现所需内容:http://randomdrake.com/2009/09/23/how-to-use-onbeforeunload-with-form-submit-buttons/

答案 1 :(得分:0)

这是IE的“按预期工作”行为。无论是否导航,锚标记点击都会触发onbeforeunload event

这是我使用的解决方法 - 我不确定它是否是最好的方法:

document.onmouseup = function () {
    if (window.event.srcElement.tagName === 'A') {
        // turn off your onbeforeunload handler
        ...

        // some small time later, turn it back on
        setTimeout(..., 200);
    }
};