【问题标题】: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 对主题的回答。

标签: javascript jquery dom onbeforeunload dom-events


【解决方案1】:

这不仅是糟糕的 UI 设计,而且无法做到。您可以在beforeunload 中执行的操作是向用户返回一个字符串,然后该字符串将显示在用户必须确认导航的提示中。

$(window).on('beforeunload', function(){
    return 'Are you sure you want to leave?';
});

您最好的选择是提供足够严厉的信息,例如。 “您将在进程 X 完成之前离开页面。不要这样做,您会毁了一切。现在认真点击取消。”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 2016-06-01
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 2019-07-17
    • 1970-01-01
    相关资源
    最近更新 更多