多个Facebook脚本?

时间:2012-06-18 21:14:31

标签: javascript facebook facebook-like

这可能是一个愚蠢的问题,但是类似按钮页面上的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>

1 个答案:

答案 0 :(得分:0)

我认为这是故意的。

那些使用javascript SDK的人可能想要做的不仅仅是添加一个类似的按钮,因此它们包含fb.init脚本并向您显示添加更多初始化代码的位置等。

那些只是添加类似按钮的人可以粘贴其他blob,这会掩盖fbinit的内容,以避免混淆和使用此行的复杂性: (document, 'script', 'facebook-jssdk'));

我想如果你们两个都尝试,他们都会工作:)