多个FB.Event.subscribe不会触发但单个触发

时间:2012-11-21 09:39:25

标签: javascript facebook-graph-api

我正在尝试将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> 但他们根本不会开火。

这是一个已知问题吗?我无法相信它们总是存在于一起

有什么想法吗?

这是我正在尝试的完整实际代码:

{{1}}

1 个答案:

答案 0 :(得分:0)

每个window.fbAsyncInit设置相同的属性,并且这些属性按顺序执行,并且不是累积的,只实际设置了最后一个函数。

现在,我非常确定您还有第三个fbAsyncInit =...块,其中SDK已初始化,并且由于上述原因而永远不会执行。

将所有这些移到一个fbAsyncInit中,你应该很好。