2012-02-07 31 views
6

我想同步加載facebook api(javascript SDK)。我在facebook開發者看過這段代碼。如何加載JavaScript的臉譜API同步...?

<div id="fb-root"></div> 
<script src="//connect.facebook.net/en_US/all.js"></script> 
<script> 
FB.init({ 
appId  : 'YOUR_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 
}); 
</script> 

,也參考了其他鏈接 http://www.masteringapi.com/tutorials/facebook-javascript-sdk-best-practices/58/ 被提到,「但是,你需要確保你沒有在自己的JS代碼或庫定義FB!」 ....... ........

我很困惑....! 請幫我....

+0

究竟是什麼令你困惑? – 2012-02-07 07:39:23

回答

3

你在做什麼看起來不錯。

您看過的說明,「但是您需要確保您沒有在自己的JS代碼或庫中定義FB!」只是一個警告,不要在您的應用程序中聲明名爲FB的變量,否則您將隱藏Facebook SDK。

在您的代碼中,在下一行中,您可以開始使用FB.api或任何其他方法撥打電話。

這有幫助嗎?

+0

hi, 我將應用程序ID傳遞給上述代碼。我的名字叫做FB.getLoginStatus(function(response){alert(response.status); }); 但它顯示錯誤「e.root未定義」。 – 2012-02-07 08:38:08

+0

你能展示完整的調用堆棧嗎? – 2012-12-28 06:03:26

-8

打開HTML標記

<div id="fb-root"> 
    </div> 

    <script> 
     window.fbAsyncInit = function() { 
      FB.init({ 
       appId: 'Your APP ID', 
       status: true, // check login status 
       cookie: true, // enable cookies to allow server to access session 
       xfbml: true, // parse XFBML 
       oauth: true 
      }); 
     }; 
    (function() { 
     var e = document.createElement('script'); 
     e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
     e.async = true; 
     document.getElementById('fb-root').appendChild(e); 
    }()); 
    </script> 

該代碼將異步加載JavaScript SDK之後添加下面的代碼。

+0

我在我的項目中使用這些行來異步加載JS SDK,它對我來說工作得很好。我可以知道投票的原因,這樣我的回答就可以更清楚了。 – 2012-02-07 11:09:28

+3

問題是如何同時加載sdk,就像在標題中大寫一樣。您的代碼加載是異步的。以防萬一您在發佈此答案後的6個月內沒有注意到。 – jaimerump 2012-08-22 17:19:38