离开页面前保存用户电子邮件

时间:2014-01-07 11:22:40

标签: javascript php jquery

在我网站的购物车页面上,我必须拦截离开页面的用户并询问他们是否想通过电子邮件保存购物车。

我想我必须使用事件“beforeunload”来拦截离开页面的用户,但后来我遇到了两个问题:

  • 如何从“beforeunload”中排除触发点击链接以继续付款?

  • 如何提示我可以要求提供电子邮件的小表格(稍后会以某种方式使用),然后继续卸载页面?

2 个答案:

答案 0 :(得分:1)

要在链接上排除以继续付款,您可以执行以下操作: -

window.onbeforeunload = function() {
    return "You're leaving the site.";
};
$(document).ready(function() {
    $('a[rel!=ext]').click(function() { window.onbeforeunload = null; });
    $('form').submit(function() { window.onbeforeunload = null; });
});

答案 1 :(得分:0)

你唯一能做的就是出现一个默认的浏览器消息框......

window.onbeforeunload = foo;

function foo(e) {
        if (!e) e = window.event;
        //e.cancelBubble is supported by IE - this will kill the bubbling process.
        e.cancelBubble = true;
        e.returnValue = 'You sure you want to leave?'; //This is displayed on the dialog

        //e.stopPropagation works in Firefox.
        if (e.stopPropagation) {
            e.stopPropagation();
            e.preventDefault();
        }
}