停止页面卸载/关闭
Posted
技术标签:
【中文标题】停止页面卸载/关闭【英文标题】:Stop Page Unload/Close 【发布时间】:2014-06-21 13:03:03 【问题描述】:我有一个系统,其中在满足特定条件之前不得关闭/卸载页面。这是为了强制员工填写非常重要的信息。
我知道这不是好的 UI 做法,我完全同意,但在这种情况下,经过长时间的讨论,这是 100% 必要的。
我已经尝试了以下代码:
$(window).bind('beforeunload', function (event)
cancelEvent(event);
stopEvent(event);
);
function cancelEvent(e)
if (!e) e = window.event;
if (e.preventDefault)
e.preventDefault();
else
e.returnValue = false;
function stopEvent(e)
if (!e) e = window.event;
if (e.stopPropagation)
e.stopPropagation();
else
e.cancelBubble = true;
上面的代码不起作用。
有没有办法终止卸载事件并保持页面显示?
目标浏览器是 IE 7-9,所以即使它不能在现代浏览器上运行也没问题。
再次感谢。
【问题讨论】:
查看jAndy's 对主题的回答。 【参考方案1】:这不仅是糟糕的 UI 设计,而且无法做到。您可以在beforeunload
中执行的操作是向用户返回一个字符串,然后该字符串将显示在用户必须确认导航的提示中。
$(window).on('beforeunload', function()
return 'Are you sure you want to leave?';
);
您最好的选择是提供足够严厉的信息,例如。 “您将在进程 X 完成之前离开页面。不要这样做,您会毁了一切。现在认真点击取消。”
【讨论】:
以上是关于停止页面卸载/关闭的主要内容,如果未能解决你的问题,请参考以下文章