2

我为我的网站制作了一个弹出框,邀请访问者在 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>

提前致谢!

4

2 回答 2

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"
于 2012-12-19T21:31:51.657 回答
2

除非您有权访问用户的喜欢,否则您无法从 facebook 的一端知道该页面是否被喜欢。但为此,您必须通过 facebook connect 获得用户注册。

大多数类似的门/弹出窗口使用cookie来跟踪类似的。当用户点赞该页面时,facebooks 的 edge.create 用于收听点赞并创建一个 cookie。如果 cookie 被清除,弹出窗口将再次出现。

有关 fb 事件的更多信息: https ://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/

于 2012-12-19T21:34:32.517 回答