我有没有理由为Facebook JS SDK提供一个简单的<script>元素?

时间:2016-12-12 12:13:31

标签: facebook iife

Facebook的文档( https://developers.facebook.com/docs/ javascript / quickstart / v2.5 )表示应使用以下代码段将其SDK包含在网页中:

&#xA;&#xA;
 &lt; script&gt ;&#XA; window.fbAsyncInit = function(){&#xA; FB.init({&#xA; appId:'your-app-id',&#xA; xfbml:true,&#xA; version:'v2.8'&#xA;});&#xA; FB.AppEvents.logPageView();&#XA; };&#XA;&#XA; (function(d,s,id){&#xA; var js,fjs = d.getElementsByTagName(s)[0];&#xA; if(d.getElementById(id)){return;}&#xA; js = d.createElement(s); js.id = id;&#xA; js.src =“// connect.facebook.net/en_US/sdk.js";
 fjs.parentNode.insertBefore(js ,fjs);&#xA;}(文档,'script','facebook-jssdk'));&#xA;&lt; / script&gt;&#xA;  
&#xA;& #xA;

第一个语句只是在 window 对象中设置一个字段。第二个表达式是立即调用的函数表达式,但它只是在第一个&lt; script&gt; 元素之后的文档中创建&lt; script&gt; 元素。文档。

&#xA;&#xA;

文档说这是“将SDK异步加载到我的页面中”,但是IIFE立即执行,没有任何异步。他们为什么声称这个?

&#xA;&#xA;

我有什么理由不能将这个元素放在纯HTML中并放在 I 想要它的地方文档(如下所示):

&#xA;&#xA;
 &lt; script type =“text / javascript”&gt;&#xA; window.fbAsyncInit = function(){& #xA; FB.init({&#xA; appId:'your-app-id',&#xA; xfbml:true,&#xA; version:'v2.8'&#xA;});&#xA; FB.AppEvents.logPageView();&#xA;};&#xA;&lt; / script&gt;&#xA;&lt; script id =“facebook-jssdk”src =“// connect.facebook.net/en_US/ sdk.js“&gt;&lt; / script&gt;&#xA;  
&#xA;&#xA;

我可以添加 async =”async“ boolean attribute?

&#xA;

0 个答案:

没有答案