0

我正在使用此代码

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>

所以我希望退出功能不要为此执行..那么如何整合这个

4

2 回答 2

0

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

linkClicked = true;

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

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

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

于 2012-06-18T13:44:41.940 回答
0

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

于 2012-06-18T13:46:57.597 回答