防止网页使用 JavaScript 导航离开
2022-08-30 02:30:42
如何防止网页使用JavaScript导航?
使用允许您显示消息,但不会中断导航(因为为时已晚)。但是,使用将中断导航:onunload
onbeforeunload
window.onbeforeunload = function() {
return "";
}
注意:返回空字符串是因为较新的浏览器提供了无法覆盖的消息,例如“任何未保存的更改都将丢失”。
在较旧的浏览器中,您可以指定要在提示中显示的消息:
window.onbeforeunload = function() {
return "Are you sure you want to navigate away?";
}
与这里介绍的其他方法不同,这段代码不会导致浏览器显示警告,询问用户是否要离开;相反,它利用DOM的事件性质在浏览器有机会从内存中卸载它之前重定向回当前页面(从而取消导航)。
由于它直接通过短路导航工作,因此不能用于防止页面关闭;但是,它可用于禁用帧破坏。
(function () {
var location = window.document.location;
var preventNavigation = function () {
var originalHashValue = location.hash;
window.setTimeout(function () {
location.hash = 'preventNavigation' + ~~ (9999 * Math.random());
location.hash = originalHashValue;
}, 0);
};
window.addEventListener('beforeunload', preventNavigation, false);
window.addEventListener('unload', preventNavigation, false);
})();
免責聲明:你永远不应该这样做。如果页面上有破坏框架的代码,请尊重作者的意愿。