2011-11-11 51 views
58

爲什麼我們需要在我們的facebook應用程序中添加這對標籤。這對標籤有什麼用處。 我創建了一個使用apprequest的應用程序,即使我沒有在腳本前添加這些標籤,它也能很好地工作。 所以我真的很想知道爲什麼我們需要添加它們。 謝謝。爲什麼我們需要添加<div id="fb-root"></div>

回答

45

它是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> 
+2

這是一個使用不顯眼的JavaScript的例子。 – Teddy

+0

嗨,任何人注意到

將導致您的https://是不安全的?當我直接將瀏覽器指向https://.../myfb_app/時,如果我有
,文件不會被解析爲安全文件,但是當我刪除它時,整個文件的解析都是安全的。有什麼建議麼?? – alex

+5

他們不能直接追加頭部嗎? –

31

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

您現在可以將其刪除。 Facebook的Javascript SDK自己創建它,將其附加到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

+0

除了然後我們似乎有問題,像[這](http://stackoverflow.com/questions/24019877/fb-init-function-gives-wrong-version-error) – mgalgs

+0

@mgalgs:閱讀這些評論,它似乎沒有找到任何問題導致OP的問題的解決方案,所以我不會說增加div標籤是一個解決任何問題,如果有問題,已經2年了,我相信它是最好的選擇是遵循他們的代碼建議,其中不包括該div標籤。 –

+0

v2.8顯示警告... –

-1

它會變得更加簡單與Turbolinks 5.你只需要將data-turbolinks-permanent=true添加到fb-root div,它將在請求之間保持不變。無需擺弄javascript。

相關問題