繁体   English   中英

退出弹出窗口重定向,但有异常

[英]Exit Popup Redirect With a Exception

我也不喜欢退出弹出窗口,但是如果要在即将到来的节日那天,我想进行整合,因此要感谢我的访客并给他们一些特别的东西。 我在下面的这段代码中退出时重定向。

var exitPop = false;
var nonFire = false;
window.onbeforeunload = function () {
    if(!exitPop){
        exitPop=true;
        return 'Happy Festival Day!';
    }
};

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

我在下面的基本上重定向的地方使用此代码进行评论

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

而且我不想显示退出重定向到评论的我的访客,因为它使我的访客烦恼,我希望该代码仅在单击退出时执行。 所以我应该包含哪些代码,从而创建注释重定向的异常,并且不向注释者显示弹出窗口

仅当某些链接打开弹出窗口时,才会阻止它。 因此,如果您尝试在退出时加载某些内容,将无法正常工作。

这是一个有效的示例: http : //swip.codylindley.com/popupWindowDemo.html在有人写的jquery中使用了一个小库。 您可以查看源。

基本上,如果弹出窗口打开onclick,您应该可以,但在任何其他情况下,它将被阻止。

我不确定某些公司如何摆脱它,但最终会堵塞各种黑客。 我尝试执行此操作的一种方法是在链接上触发onclick操作,即使这样也不起作用。 因此,这是非常简单的证明。

您可以通过在JavaScript中设置Cookie来实现。 您可以使用直接的javascript来做到这一点,但是使用jquery.cookies插件可以缩短代码,因此请演示该方法。

在您的comment.create函数中,设置一个cookie以显示该用户发表了评论:

 FB.Event.subscribe('comment.create',
    function (response) {
        $.cookie('has_commented', 'true');
        window.location = "http://domain.com";
 });

然后检查退出函数上的cookie值:

if($.cookie('has_commented') == true) {
    return 'Happy Festival Day!';
}

Jquery Cookies插件在这里: https : //github.com/carhartl/jquery-cookie/blob/master/README.md

或者,如果你想要做直JavaScript的同样的事情-同样的概念-在这里,但有点混乱..信息: http://www.w3schools.com/js/js_cookies.asp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM