1

我是一个非常初学者......

单击喜欢按钮时,我无法获取edge.create或触发。edge.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>
4

1 回答 1

3

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

在您的代码中,您无需等待 Facebook SDK 加载,这是以您将其放入代码中的方式异步完成的。因此,当调用 FB.Event.subscribe 时,SDK 还没有初始化,所以就失败了。(它是静默失败,还是您只是忘记查看浏览器错误控制台……?)

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

于 2012-06-08T17:13:06.900 回答