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の端からページが高く評価されたかどうかを知る方法はありません。ただし、そのためには、FacebookConnectを介してユーザーのサインアップを取得する必要があります。

同様のゲート/ポップアップのほとんどは、Cookieを使用して同様のものを追跡します。ユーザーがそのページを高く評価すると、Facebookのedge.createを使用してそのようなものをリッスンし、Cookieが作成されます。Cookieがクリアされると、ポップアップが再び表示されます。

fbイベントの詳細: https ://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/

于 2012-12-19T21:34:32.517 に答える