这可能是一个愚蠢的问题,但是“赞”按钮页面上的 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>
最佳答案
我认为这是故意的。
那些使用 javascript SDK 的人可能想要做的不仅仅是简单地添加一个“like”按钮,因此他们包含了 fb.init 脚本,并向您展示在哪里添加进一步的初始化代码等。
那些只添加“like”按钮的人可以粘贴其他 blob,它会覆盖 fbinit 内容,以避免此行的困惑和复杂性:
(文档, '脚本', 'facebook-jssdk'));
我想如果你两者都尝试,它们都会起作用:)
关于javascript - 多个 Facebook 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11091170/