jQuery退出弹出重定向?

时间:2012-02-25 07:00:03

标签: javascript jquery html alert confirm

所以我一直在寻找几个小时,测试多个版本,测试我自己的一些理论,而我似乎无法让它发挥作用。

我要做的是使用alertconfirm(或其他任何工作),以便在用户尝试离开购买表单时弹出对话框。我只是想问他们“嘿,不是为了离开,为什么不免费咨询?”并将用户重定向到“免费咨询”表格。

这是我到目前为止所得到的,但我得不到正确的结果。

$(window).bind('beforeunload', function(){
        var pop = confirm('Are you sure you want to leave? Why not get a FREE consultation?');
        if (pop) {

            window.location.href('http://www.mydomain/free-consultation/');
        } else {
            // bye bye
        }
    });

    $("form").submit(function() {
        $(window).unbind("beforeunload");
    });

4 个答案:

答案 0 :(得分:1)

这是向用户显示确认对话框,想要留下或离开页面。不完全是你想要的东西,但它可能对你的开始很有用。

function setDirtyFlag() {
    needToConfirm = true; //Call this function if some changes is made to the web page and requires an alert
    // Of-course you could call this is Keypress event of a text box or so...
}

function releaseDirtyFlag() {
    needToConfirm = false; //Call this function if dosent requires an alert.
    //this could be called when save button is clicked 
}


window.onbeforeunload = confirmExit;
function confirmExit() {
    if (needToConfirm)
        return "You have attempted to leave this page. If you have made any changes to the fields without clicking the Save button, your changes will be lost. Are you sure you want to exit this page?";
}

脚本取自http://forums.devarticles.com/showpost.php?p=156884&postcount=18

答案 1 :(得分:1)

我决定检查用户鼠标是否已离开文档,而不是使用beforeunloadalert()。请参阅以下代码:

$(document).bind('mouseleave', function(event) {
    // show an unobtrusive modal
});

答案 2 :(得分:0)

试试这个:

window.onunload = redirurl;
            function redirurl() {
                alert('Check this Page');
                window.location.href('http://www.google.com');
            }

答案 3 :(得分:0)

不确定它是否会有所帮助。 您需要在显示确认/警报之前停止传播。

请参阅http://jonathonhill.net/2011-03-04/catching-the-javascript-beforeunload-event-the-cross-browser-way/

看看最后的评论。