2

これはちょっとばかげた質問かもしれませんが、いいねボタンページのFacebookボタンのスクリプトは、javascript sdkページのスクリプトとは異なりますが、似ています。Facebookはドキュメントを更新するのを忘れただけですか、それとも両方のスクリプトが必要ですか?

いいねボタンのページは次のようになります。

<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";
  fjs.parentNode.insertBefore(js, fjs);
  }(document, 'script', 'facebook-jssdk'));</script>

しかし、javascript sdkページでは:

<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
  FB.init({
  appId      : 'YOUR_APP_ID', // App ID
  channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
  status     : true, // check login status
  cookie     : true, // enable cookies to allow the server to access the session
  xfbml      : true  // parse XFBML
});

// Additional initialization code here
};

// Load the SDK Asynchronously
(function(d){
 var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
 if (d.getElementById(id)) {return;}
 js = d.createElement('script'); js.id = id; js.async = true;
 js.src = "//connect.facebook.net/en_US/all.js";
 ref.parentNode.insertBefore(js, ref);
  }(document));
</script>
4

1 に答える 1

0

これは意図的なものだと思います。

JavaScript SDK を使用する人は、単純に「いいね」ボタンを追加する以上のことをしたいと思う可能性が高いため、fb.init スクリプトを含めて、初期化コードなどを追加する場所を示します。

いいねボタンを追加するだけの人は、他の blob を貼り付けるだけで、fbinit の内容を覆い隠して、次の行での混乱と複雑さを回避できます。 (document, 'script', 'facebook-jssdk'));

両方を試してみると、両方ともうまくいくと思います:)

于 2012-06-18T23:07:46.110 に答える