代码之家  ›  专栏  ›  技术社区  ›  tawheed

onbeforeunload在用户单击某个内容时不断弹出一个警告框

  •  0
  • tawheed  · 技术社区  · 12 年前

    我创建了一个页面,当用户单击(关闭 x )窗口上的按钮。我读了一些书,发现JavaScript有一个名为 onbeforeonload 这可以取代我努力完成的工作。然而,我在实现后发现,当用户单击我窗口中的任何内容(例如:保存并输入)时,对话框会重新出现。我想知道我怎么只能针对特定的 十、 按钮。

    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 回复  |  直到 2 年前
        1
  •  0
  •   Jeff Wooden    12 年前

    现在正在全局调用该函数。。。此资源可能会帮助您实现您想要的目标: http://randomdrake.com/2009/09/23/how-to-use-onbeforeunload-with-form-submit-buttons/

        2
  •  0
  •   jbabey    12 年前

    对于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);
        }
    };