退出弹出重定向但仅在退出时执行而不是单击页面上的任何其他html重定向按钮

时间:2012-06-18 13:34:58

标签: php javascript html redirect

我正在使用此代码

var exitPop = false;
var nonFire = false;
window.onbeforeunload = function () {
    if(!exitPop){
        exitPop=true;
        return 'Wait! YOU ARE TODAYS WINNER!';
    }
};

setInterval(function(){
    if(exitPop && !nonFire){
        nonFire = true;
        window.location.href = 'http://google.com';
    }
}, 200);

但它也可以在点击页面上的任何html重定向按钮时执行..我希望它只在有人关闭浏览器并且它应该支持所有浏览器时执行。

我需要在我网站的一个链接中添加这个ID怎么做?我的意思是我使用此代码进行重定向

<script type="text/javascript"> 

window.fbAsyncInit = function() {
    FB.Event.subscribe('comment.create',
    function (response) {
        window.location = "http://domain.com";
    });
    FB.Event.subscribe('comments.remove',
    function (response) {
        window.location = "http://domain.com";
    });   
};

(function() {
    var e = document.createElement('script');
    e.async = true;
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
    document.getElementById('fb-root').appendChild(e);
}());
//]]>
</script>

所以我希望退出函数不执行此..所以如何集成这个

2 个答案:

答案 0 :(得分:0)

我还没有对它进行过测试,但您应该能够将“点击”事件附加到页面上的每个链接,这应该设置一个全局变量,例如

linkClicked = true;

然后,您可以在卸载事件中检查该变量

if (!linkClicked) // variable is false so they must not have clicked on a link
{
    // Some annoying message here
}

免责声明:这几乎是伪代码,它不是复制+粘贴解决方案。

答案 1 :(得分:0)

window.onbeforeunload不区分链接,后退/前进按钮,退出按钮或其他任何内容。如果您离开页面时触发,无论您如何离开页面。