window.onbeforeunload在弹出窗口中不能在Firefox 46上运行,所有其他浏览器都可以工作

时间:2016-05-21 08:16:23

标签: firefox onbeforeunload

Firefox 46存在问题,在所有其他浏览器上运行正常。 退出页面后,我问下面的问题。 Firefox完全忽略它。 求救!

window.onbeforeunload = ThisCheckExittingPage;

var ThisCheckExitWindow = 1;

// Checks before exitting
// ThisCheckExitWindow = 1;

// Does NOT check before exitting
// ThisCheckExitWindow = 0;

function ThisCheckExittingPage() {

    if (ThisCheckExitWindow == 1)
    {
        return "You are about to exit this page.";
    }
}

1 个答案:

答案 0 :(得分:1)

这看似于设计,因为WindowEventHandlers.onbeforeunload - Web APIs | MDN有这样的说明:

  

为了防止不需要的弹出窗口,浏览器可能无法显示创建的提示   在beforeunload事件处理程序中,除非页面已被交互   用。自Firefox 44(Bugzilla)以来,Firefox已实施此策略。

正如relevant patch所示,mUserHasInteracted标志变量是在窗口中发生鼠标或键盘事件后设置的。