为什么我们需要添加<div id =“fb-root”> </ div>

为什么我们需要在Facebook应用程序中添加这些标签。 这对标签有什么用处? 我创build了一个使用apprequest的应用程序,即使我没有在脚本前添加这些标签,它也能正常工作。 所以我真的很想知道为什么我们需要添加它们。 谢谢。

这是Facebook JavaScript脚本的元素附加到DOM的地方。 如果没有这个引用的Facebook脚本运行它没有任何附加元素。

你可以看到fb-root被追加到初始化的一部分。

<script type="text/javascript"> window.fbAsyncInit = function() { FB.init({appId: 'xxxxxx', status: true, cookie: true, xfbml: true}); }; (function() { var e = document.createElement('script'); e.async = true; e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; document.getElementById('fb-root').appendChild(e); }()); </script> 

更新:Facebook不再要求您在HTML中包含<div id="fb-root"></div>

你现在可以删除它。 Facebook的JavaScript SDK创build它自己的,附加到BODY标签。 控制台中也没有显示警告,就像以前一样。

Facebook的文档也被更新了,不再显示<div id="fb-root"></div>要求。

版本1.0的旧文档(显示<div id="fb-root"></div> ): https : //developers.facebook.com/docs/javascript/quickstart/v1.0

版本2.5的当前文档(不再显示<div id="fb-root"></div> ): https : //developers.facebook.com/docs/javascript/quickstart/v2.5

使用Turbolinks 5,它变得更加简单。您只需要将data-turbolinks-permanent=truefb-root div中,并在请求之间保留。 没有必要捣鼓的JavaScript。