我也不喜欢退出弹出窗口,但我想整合如果是一个庆祝节日,所以想要感谢我的访客并给他们一些特别的东西。 我是下面的代码,用于退出时的重定向。
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>
我不希望将退出重定向显示给我评论的访问者,因为它让我的访问者烦恼我希望代码只在点击退出时执行。那么我应该包含哪些代码来创建注释重定向的异常,并且不应该向评论者显示弹出窗口
答案 0 :(得分:0)
只有在某个链接打开时,才会阻止弹出窗口。因此,如果您尝试在退出时加载某些内容,则无效。
这是一个工作示例:http://swip.codylindley.com/popupWindowDemo.html在某人写的jquery中使用了一个小库。你可以查看来源。
基本上,如果弹出窗口打开,你应该没事,但在任何其他情况下它都会被阻止。
我不确定某些公司如何逃脱它,但任何类型的黑客最终都会陷入困境。我尝试这样做的一种方法是在链接上触发onclick操作,即使这样也行不通。所以这是相当愚蠢的证据。
答案 1 :(得分:0)
您可以通过在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