我非常喜欢初学者......
单击“赞”按钮时,我无法触发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>
答案 0 :(得分:3)
你只是不耐烦......: - )
在您的代码中,您不必等待加载Facebook SDK,这与您将其放入代码中的方式异步完成。因此,当调用FB.Event.subscribe时,SDK尚未初始化,因此只是失败。 (它是否会无声地失败,或者您是否忘记查看浏览器错误控制台......?)
将加载SDK后的代码放入window.fbAsyncInit处理程序中,如下所示:https://developers.facebook.com/docs/reference/javascript/