2012-01-29 71 views
2

我有以下代碼靠近我的HTML文檔的最後,</body> tag之前:FB.init導致Facebook標籤setAutoGrow()到不行

<div id="fb-root"></div> 
<script type="text/javascript" src="//connect.facebook.net/en_US/all.js"></script> 

<script type="text/javascript"> 
window.fbAsyncInit = function() 
{ 
    FB.init({ 
     appId : 'My app id', 
     status : true, 
     cookie : true, 
     xfbml : true 
    }); 
    FB.Canvas.setAutoGrow(); 
} 
</script> 

它不工作。然而,當我擺脫了FB.init功能,自動調整大小的作品:

<div id="fb-root"></div> 
<script type="text/javascript" src="//connect.facebook.net/en_US/all.js"></script> 

<script type="text/javascript"> 
window.fbAsyncInit = function() 
{ 
    FB.Canvas.setAutoGrow(); 
} 
</script> 

有沒有在一個頁面的方式有了一個window.fbAsyncInit,並在同一時間提供的appid到Facebook的API ?

+0

你是否解決了這個問題,我遇到了同樣的問題。在Canvas設置中手動設置高度的時間非常長。 – 2012-05-23 11:20:08

+0

我可以向你保證,如果沒有'init','setAutoGrow'不會做任何事情,所以你必須做一些其他的事情導致這個問題。 – 2012-08-29 06:17:57

回答

1

您似乎對window.fbAsyncInit感到困惑,它在javascript異步加載時使用,如下所示。所以刪除這個包裝函數應該可以解決你的問題。

// Load the SDK Asynchronously 
(function (d) { 
    var js, id = 'facebook-jssdk'; if (d.getElementById(id)) { return; } js = d.createElement('script'); js.id = id; js.async = true; js.src = "//connect.facebook.net/en_US/all.js"; d.getElementsByTagName('head')[0].appendChild(js); 
} (document));