我为我的网站制作了一个弹出框,邀请访问者在FB上看我的页面。我想知道是否有办法检测喜欢该页面的人,并删除弹出框(= div),因此每次浏览网站时都不会加载它们。
不知道这是否可行,但我想知道。这是我的脚本,以防你需要它:
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<script type="text/javascript">
var dom = {};
dom.query = jQuery.noConflict(true);
var time = 11;
window.setInterval(test, 1000);
function test()
{
time -=1;
dom.query('#fb-timer').html(time);
if(time == 0)
{
dom.query('#fb-popupdiv').remove();
}
}
function setCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
setCookie(name,"",-1);
}
dom.query(document).ready(function() {
var val = readCookie("popupAlreadyShown");
if (!val) {
setCookie("popupAlreadyShown", 1, 1);
dom.query("#fb-popupdiv").show();
} else {
}
});
</script>
提前致谢!
答案 0 :(得分:2)
您想看一下edge.Create事件。订阅它,并在其中执行您想要的任何功能。例如:
<script type='text/javascript'>
window.fbAsyncInit = function () {
FB.init({ appId: '1234567890', status: true, cookie: true,
xfbml: true
});
FB.Event.subscribe('edge.create', function (response) {
$("#facebookdiv").hide();
// set a variable or a cookie so it doesn't show on future requests
});
</script>
从我关联的页面上的Facebook文档中
edge.create - 当用户喜欢某事时触发(fb:like)。回调函数的响应参数包含喜欢的URL:
"http://www.example.com/article1.php"
答案 1 :(得分:2)
除非您可以访问用户的喜欢,否则您无法从Facebook的结尾知道该页面是否被喜欢。但为此你必须通过facebook connect获得用户注册。
大多数类似的大门/弹出窗口都使用cookie来跟踪类似情况。当用户喜欢该页面时,facebooks的edge.create用于收听类似内容并创建cookie。如果cookie被清除,弹出窗口将再次出现。
有关fb事件的更多信息: https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/