我想处理 beforeunload
Firefox 中的事件。除了用户需要手动单击页面或在输入中写入内容外,它工作正常。
我有以下代码可以在 Firefox 上运行,但同样,只有当我们手动单击该页面时。
<script>
popMessage = "Foo";
window.addEventListener("beforeunload", function (e) {
(e || window.event).returnValue = popMessage; //Gecko + IE
alert(popMessage);
return popMessage;
});
</script>
我尝试添加:
-
document.body.click()
-
<input type='text' autofocus>
两者都没有做任何改变。
我还尝试使用 jQuery,希望它能正确处理它。还是一样:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script>
$(window).on('beforeunload', function(){
return 'Are you sure you want to leave?';
});
</script>
这些在 Chrome 上工作正常,但在 Firefox 上不行。是否有希望在页面上没有用户交互的情况下实现此功能?
最佳答案
developer.mozilla.org指出“为了打击不需要的弹出窗口,浏览器可能不会显示在 beforeunload 事件处理程序中创建的提示,除非该页面已与之交互。”所以没有希望。
关于javascript - 除非我单击页面,否则 Firefox 不会调用 `beforeunload` 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38769536/