编辑:这个问题不同,因为我要求在2017浏览器中提供解决方案。另一个问题涉及几年前的浏览器。它也没有解决方案。必须有某种解决方案,这就是我要求的。
我添加了一个事件监听器:
addEventListener("beforeunload", MyBeforeUnload, false);
我有我的功能:
function MyBeforeUnload() {
if(!g_IsSaved) {
return "You have not saved your data. If you leave this page without saving, your data will be lost.";
}else {
// Do not return anything if ok to leave
}
}
这会在IE中触发并显示警告消息。
它会触发该功能并正确返回字符串,但是当使用浏览器右上角的[x]按钮关闭浏览器时,不会在Chrome,Edge或Firefox中触发警告消息。
2017年可以使用这种跨浏览器吗?
答案 0 :(得分:0)
尝试使用它,因为它应该在跨浏览器中工作
Maven
但Chrome已决定取消在window.addEventListener("beforeunload", function(e) {
var confirmationMessage = "You have not saved your data. If you leave this page without saving, your data will be lost.";
if (!g_IsSaved) {
(e || window.event).returnValue = confirmationMessage; //Gecko + IE
return confirmationMessage; //Webkit, Safari, Chrome etc.
} else {
// Do not return anything if ok to leave
}
});
对话框中设置自定义消息的功能,以避免欺诈
请参阅2016年2月18日的bug report。
onbeforeunload对话框用于现代Web上的两件事:
1.防止用户无意中丢失数据 2.欺骗用户。