Onbeforeunload无法在Chrome / Firefox上运行,但可以在IE中运行

时间:2018-08-01 23:00:00

标签: javascript google-chrome internet-explorer firefox

我为onbeforeunload编写了代码。它适用于IE,但不适用于任何其他浏览器。

var unloadFunction = function(){return "";}
window.addEventListener('beforeunload', unloadFunction); 

此代码可能会出错。 :(我听不懂。我希望它能在所有浏览器中正常运行,以便在一个页面存在之前向用户显示确认弹出窗口。

1 个答案:

答案 0 :(得分:1)

由于网页表现不佳,自从引入卸载处理以来,已经对其进行了修改。结果,浏览器可能会或可能不会在卸载事件处理期间抑制警报。

有关详细信息,请参考MDN,但请注意,提到的returnValue是事件对象的属性,而不是事件处理函数返回的值。

下面的示例在主要的浏览器和IE中运行(至少适用于Windows 10)。

  • Firefox和IE报告了event.returnValue中提供的消息。
  • Chrome忽略了该消息,只是询问了一下
      

    要离开网站吗?
      您所做的更改可能不会保存。

  • 只有IE显示了警报框。

var unloadFunction = function( event){
    event.returnValue = "do you really want to leave this page";
    alert("unloading");
};
window.addEventListener('beforeunload', unloadFunction);