0

我创建了一个页面,当用户单击窗口上的(关闭 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;
} 
4

2 回答 2

0

现在该函数正在全局调用......这个资源可能会帮助你实现你正在寻找的东西:http ://randomdrake.com/2009/09/23/how-to-use-onbeforeunload-with-form-submit -纽扣/

于 2012-08-13T17:33:23.583 回答
0

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

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

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

        // some small time later, turn it back on
        setTimeout(..., 200);
    }
};
于 2012-08-13T17:40:57.173 回答