我在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;
});
答案 0 :(得分:0)
是的,您应该同时使用两者。 Chrome仍然需要设置.returnValue
,但是HTML规范指出您应该使用Event.preventDefault()而不是返回值。
这是一个不符合Chrome的标准的问题。
https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload#Example
在底部,他们详细描述了一些较流行的浏览器中beforeunload
支持的状态。