首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >阻止网页使用JavaScript导航离开

阻止网页使用JavaScript导航离开
EN

Stack Overflow用户
提问于 2009-05-05 01:19:03
回答 7查看 146.4K关注 0票数 149

如何防止使用JavaScript浏览网页?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-05-04 18:06:41

使用onunload允许您显示消息,但不会中断导航(因为为时已晚)。但是,使用onbeforeunload将中断导航:

代码语言:javascript
复制
window.onbeforeunload = function() {
  return "";
}

注意:返回空字符串是因为较新的浏览器提供了无法覆盖的消息,例如“任何未保存的更改都将丢失”。

在较旧的浏览器中,您可以指定要在提示中显示的消息:

代码语言:javascript
复制
window.onbeforeunload = function() {
  return "Are you sure you want to navigate away?";
}
票数 190
EN

Stack Overflow用户

发布于 2015-10-20 23:14:32

使用现代addEventListener API,以一种更现代且与浏览器兼容的方式实现了等价物。

代码语言:javascript
复制
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

票数 19
EN

Stack Overflow用户

发布于 2014-03-19 12:03:24

我最终得到了这个略有不同的版本:

代码语言:javascript
复制
var dirty = false;
window.onbeforeunload = function() {
    return dirty ? "If you leave this page you will lose your unsaved changes." : null;
}

在其他地方,当表单被弄脏(或者我想要阻止导航离开)时,我将脏标志设置为true。这使我可以轻松地控制用户是否得到确认导航提示。

使用所选答案中的文本,您会看到多余的提示:

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/821011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档