JavaScript - 离开页面时的确认提示

3

我正在尝试实现一个基本的弹出窗口,询问用户是否真的要离开页面,类似于在撰写此消息期间关闭窗口时将发生的情况。

我意识到这通常是被反对的,但我有很好的理由想要这样做。

我已经使用以下代码使其工作:

function confirm_exit(e) {
        if(!e) e = window.event;

        e.cancelBubble = true;
        e.returnValue = 'Are you sure you want to leave?'; 

        if (e.stopPropagation) {
            e.stopPropagation();
            e.preventDefault();
        }
    }

然而,我真正想做的是在他们离开页面时显示消息,除非他们通过点击两个链接之一离开。
(我刚意识到这听起来像是我想强迫他们点击广告什么的!)
使用此功能的原因是在预订流程结束时,用户可以确认其预订或在确认之前添加其他预订。 (这些将是我不希望弹出消息显示的两种可能性,弹出窗口中的消息将只是说“您的预订尚未确认,您确定要离开吗?”)。
有没有办法实现这个?
任何建议都会受到赞赏。
谢谢。

2
可能是重复的问题:如何在适当时显示 onbeforeunload 对话框? - kennytm
这个回答解决了你的问题吗?如何在适当的时候显示onbeforeunload对话框? - ggorlen
2个回答

2

在头部:

<head>
...
<script type="text/javascript">
var disabledConfirm_exit=false;
</script>
</head>

在允许的两个链接中,您可以添加链接。
onclick="disabledConfirm_exit=true;"

在 confirm_exit 函数内部

function confirm_exit(e) {
    if(disabledConfirm_exit) return;
    if(!e) e = window.event;

    e.cancelBubble = true;
    e.returnValue = 'Are you sure you want to leave?'; 

    if (e.stopPropagation) {
        e.stopPropagation();
        e.preventDefault();
    }
}

2

window.unload函数可以帮助我们在关闭浏览器或重定向到其他页面时执行一些JavaScript代码。资源:http://api.jquery.com/unload/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接