javascript - 为什么 Facebook 要求我放置 JS 代码而不是脚本标签?

标签 javascript facebook

如果我想将“赞”按钮添加到我的页面,我应该将下一个代码插入到我的 html 代码中,在开始的正文标记之后。

<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/ru_RU/sdk.js#xfbml=1&version=v2.5&appId=12345";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

为什么我不能简单地使用脚本标签来代替?

<script async src='//connect.facebook.net/ru_RU/sdk.js#xfbml=1&version=v2.5&appId=12345"'>

使用 facebook 说明有什么好处?

最佳答案

可能有几个原因:

  • IE 8 和 IE9 不支持 script.async 属性,根据 http://caniuse.com/#feat=script-async
  • 如果页面上已经有 facebook-jssdk 元素(可能已被另一个代码段加载),则 facebook 代码段不会加载脚本
  • 您的解决方案没有准备 <div id="fb-root"></div>

关于javascript - 为什么 Facebook 要求我放置 JS 代码而不是脚本标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34698965/

相关文章:

javascript - 如果不是通过单击更改复选框,如何使用 jQuery 进行监听?

javascript - 使用 enzyme 获取子元素

facebook - 将应用程序添加到粉丝专页 - "Not supported"

android - Facebook SDK 错误 :Argument 'applicationId' cannot be null

javascript - 如何使用带有按键的 JavaScript 使 div 出现

javascript - 具有已知偏移量且没有夏令时的已知位置的时间

javascript - Javascript 的中央管理

xcode - FBConnect 问题?

ruby-on-rails - 如何在 Rails 中编写 channel.html 文件(针对 Facebook)

ios - Apple 拒绝了我的应用程序 5. 1.1 合法 : PRIVACY - DATA COLLECTION AND STORAGE