【问题标题】:Javascript - Confirmation when leaving pageJavascript - 离开页面时的确认
【发布时间】:2010-07-01 08:17:22
【问题描述】:

我正在尝试实现一个基本的弹出窗口,询问用户他们是否真的想离开一个页面,类似于如果我试图在写此消息的中途关闭窗口时在本网站上发生的情况。

我知道这通常是不受欢迎的,但我有充分的理由想要这样做。

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

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();
        }
    }

但是,我真正想做的是在他们离开页面时显示消息,除非他们通过单击两个链接之一离开。

(我刚刚意识到这听起来像是我可能想强迫他们点击广告或其他东西!)

使用此功能的原因是在预订流程结束时,用户可以在此确认他们的预订或在确认之前添加更多预订。 (这将是我不希望弹出消息显示的两种可能性,弹出消息中只会说“您的预订尚未确认,您确定要离开吗?)。

有没有办法做到这一点?

任何建议表示赞赏。

谢谢。

【问题讨论】:

标签: javascript popup


【解决方案1】:

在头部:

<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/

    【讨论】:

      猜你喜欢
      • 2014-03-25
      • 1970-01-01
      • 2019-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-03
      • 2011-10-28
      相关资源
      最近更新 更多