我有一个系统,在满足特定条件之前,不得关闭/卸载页面。这是为了迫使员工完成非常重要的信息。
我知道这不是一个好的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,所以即使它在现代浏览器上不起作用也没关系。
再次感谢。
答案 0 :(得分:2)
不仅UI设计不佳,而且无法完成。您在beforeunload
中可以做的是将一个字符串返回给用户,然后在用户必须确认导航的提示中显示该字符串。
$(window).on('beforeunload', function(){
return 'Are you sure you want to leave?';
});
您最好的选择是提供足够严格的信息,例如。 "您将在流程X完成之前离开页面。不要这样做,你会破坏一切。认真点击立即取消。"