防止用户在 javascript 中离开我的页面

Posted

技术标签:

【中文标题】防止用户在 javascript 中离开我的页面【英文标题】:Prevent user to leave my page in javascript 【发布时间】:2014-05-01 17:25:01 【问题描述】:

在我的表单中,我有一个不显眼的模态。如果用户点击我的“离开图片”,我会打开模式并询问他是否想离开。

如果用户说“是”,javascript(Jquery?)是否可以“停止”重新加载或页面更改以显示我的模式并继续操作(重新加载、下一页、上一页等...)?

我试过了:

$(window).bind('beforeunload', function()
    return 'message to show';
);

但我不想打开浏览器弹出窗口,我想要我的^^。

【问题讨论】:

认为这是一个被问过很多次的问题。见***.com/questions/13443503/… "但我不想打开浏览器弹出窗口,我想要我的 ^^。"不,这是不可能的! 请。别。用户应始终负责。 【参考方案1】:

没有办法阻止用户离开页面。唯一能做的就是确认窗口。

【讨论】:

好的,那你怎么做呢? @giker 我得到的唯一直接答案。【参考方案2】:

window.onbeforeunloadwindow.onunload 都有,它们的使用方式因浏览器而异。您可以通过将窗口属性设置为函数或使用.addEventListener 来询问他们:

window.onbeforeunload = function()
   // Do something

// 或

window.addEventListener("beforeunload", function(e)
   // Do something
, false);

通常,如果您需要阻止用户离开页面(例如,用户正在处理一些未保存的数据,因此他/她应该在离开前保存),则使用onbeforeunload。据我所知,Opera 不支持onunload,但您始终可以同时设置。

【讨论】:

以上是关于防止用户在 javascript 中离开我的页面的主要内容,如果未能解决你的问题,请参考以下文章

单击后退按钮但不离开页面时防止自动滚动?

javascript 用户离开页面之前捕获事件

JavaScript Javascript警告用户如果他们离开此页面他们将丢失数据

离开页面前的 JavaScript

离开页面前的 JavaScript

如果用户点击停留在页面上,则重定向的 Javascript 警报