JS beforeunload在window.addEventListener('beforeunload',(evt){})上不起作用

时间:2020-07-08 00:10:55

标签: javascript

我在Chrome和Safari上尝试过,两种浏览器都不起作用。刷新页面时,只有Chrome中的一个警告窗口如下。如果仅使用evt.preventDefault(),则该功能无效。我不知道它和.returnValue是否需要一起使用。 enter image description here

window.addEventListener('beforeunload',(evt)=>{
//evt.preventDefault();
let confirmationMsg = "Are you sure to quite?";
(evt || window.event).returnValue = confirmationMsg; 
});

1 个答案:

答案 0 :(得分:0)

是的,您应该同时使用两者。 Chrome仍然需要设置.returnValue,但是HTML规范指出您应该使用Event.preventDefault()而不是返回值。
这是一个不符合Chrome的标准的问题。

https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload#Example

在底部,他们详细描述了一些较流行的浏览器中beforeunload支持的状态。