1

私はとても初心者です…。

いいねボタンがクリックされたときに取得edge.createまたは起動できません。edge.remove2011年にさかのぼって、他の人もこの問題を投稿しているようですが、解決策はありません。

私のコードは次のとおりです。

<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 に答える