喜欢按钮不会激活edge.create或edge.remove

时间:2012-06-08 15:45:53

标签: facebook facebook-like

我非常喜欢初学者......

单击“赞”按钮时,我无法触发edge.createedge.remove。我看到其他人也发布了这个问题,回到2011年,没有我能看到的解决方案。

我的代码如下....

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>

<body>
<div id="fb-root"></div>
<script>

(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=XXX";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

FB.Event.subscribe('edge.create',
    function(response) {
        alert('You liked the URL: ' + response);
    }
);

FB.Event.subscribe('edge.remove',
    function(response) {
        alert('You UNliked the URL: ' + response);
    }
);

</script>
<fb:like href="https://www.facebook.com/XXX" send="true" width="450" show_faces="true"></fb:like>

</body>
</html>

1 个答案:

答案 0 :(得分:3)

你只是不耐烦......: - )

在您的代码中,您不必等待加载Facebook SDK,这与您将其放入代码中的方式异步完成。因此,当调用FB.Event.subscribe时,SDK尚未初始化,因此只是失败。 (它是否会无声地失败,或者您是否忘记查看浏览器错误控制台......?)

将加载SDK后的代码放入window.fbAsyncInit处理程序中,如下所示:https://developers.facebook.com/docs/reference/javascript/