如何防止使用JavaScript浏览网页?
发布于 2009-05-04 18:06:41
使用onunload
允许您显示消息,但不会中断导航(因为为时已晚)。但是,使用onbeforeunload
将中断导航:
window.onbeforeunload = function() {
return "";
}
注意:返回空字符串是因为较新的浏览器提供了无法覆盖的消息,例如“任何未保存的更改都将丢失”。
在较旧的浏览器中,您可以指定要在提示中显示的消息:
window.onbeforeunload = function() {
return "Are you sure you want to navigate away?";
}
发布于 2015-10-20 23:14:32
使用现代addEventListener API,以一种更现代且与浏览器兼容的方式实现了等价物。
window.addEventListener('beforeunload', (event) => {
// Cancel the event as stated by the standard.
event.preventDefault();
// Chrome requires returnValue to be set.
event.returnValue = '';
});
来源:https://developer.mozilla.org/en-US/docs/Web/Events/beforeunload
发布于 2014-03-19 12:03:24
我最终得到了这个略有不同的版本:
var dirty = false;
window.onbeforeunload = function() {
return dirty ? "If you leave this page you will lose your unsaved changes." : null;
}
在其他地方,当表单被弄脏(或者我想要阻止导航离开)时,我将脏标志设置为true。这使我可以轻松地控制用户是否得到确认导航提示。
使用所选答案中的文本,您会看到多余的提示:
https://stackoverflow.com/questions/821011
复制相似问题