0

ページに追加しようcomment.createcomment.removeしています

私が以下を使用する場合、すべてが大丈夫です:

window.fbAsyncInit = function(){ 
    FB.Event.subscribe('comment.create', function(response){
    $.ajax({
    type: "POST", // form method
    url: "/pages/includes/add_fb_comments.php",// destination
    data: "url=" + encodeURIComponent(response.href) + "&id=<?=$id?>&action=add",
    cache: false,
    success: function(){
    alert('Success' + encodeURIComponent(response.href) + response.commentID);
    }
    });
    });
    };

しかし、しかし、私が以下を追加するところはどこでも、何も発火せず、ajaxは発火せず、したがって成功メッセージはありません

FB.Event.subscribe('comment.remove', function(response){
    $.ajax({
    type: "POST", // form method
    url: "/pages/includes/add_fb_comments.php",// destination
    data: "commentID=" + response.commentID + "&action=remove",
    cache: false,
    success: function(){
    alert('removed comment: ' response.commentID);
    }
    });
});

私は同じ範囲内で両方を試しwindow.fbAsyncInit = function(){ました私は別々window.fbAsyncInit = function(){に試しました私は完全に別々に試しまし<script></script>たが、それらは単に発火しません。

これは既知の問題ですか?確かにこれらは常に一緒に存在しているとは信じられません

何か案は?

これは私が試している完全な実際のコードです:

<div class="fb-comments" data-href="<? echo curPageURL(); ?>" data-num-posts="4" data-width="578" mobile="false"></div>
        <script>
            window.fbAsyncInit = function(){ 
                    FB.Event.subscribe('comment.create', function(response){
                        $.ajax({
                            type: "POST", // form method
                            url: "/pages/includes/add_fb_comments.php",// destination
                            data: "url=" + encodeURIComponent(response.href) + "&id=<?=$id?>&action=add",
                            cache: false,
                            success: function(){
                            alert('Success' + encodeURIComponent(response.href) + response.commentID);
                            }
                        });
                    });
            };

            window.fbAsyncInit = function(){ 
                    FB.Event.subscribe('comment.remove', function(response){
                        $.ajax({
                            type: "POST", // form method
                            url: "/pages/includes/add_fb_comments.php",// destination
                            data: "commentID=" + response.commentID + "&action=remove",
                            cache: false,
                            success: function(){
                            alert('removed comment: ' response.commentID);
                            }
                        });
                    });
            };
            </script>
4

1 に答える 1

0

それぞれwindow.fbAsyncInitが同じプロパティを設定しており、これらは順次実行され、累積されないため、実際には最後の関数のみが設定されます。

fbAsyncInit =...さて、 SDK が初期化されている 3 番目のブロックもあると確信していますが、上記により、これは決して実行されません。

これらすべてを 1 つfbAsyncInitにまとめれば、うまくいくはずです。

于 2012-11-22T05:39:04.187 に答える