我正在尝试将comment.create
和comment.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}}
答案 0 :(得分:0)
每个window.fbAsyncInit
设置相同的属性,并且这些属性按顺序执行,并且不是累积的,只实际设置了最后一个函数。
现在,我非常确定您还有第三个fbAsyncInit =...
块,其中SDK已初始化,并且由于上述原因而永远不会执行。
将所有这些移到一个fbAsyncInit
中,你应该很好。