我試圖爲我的Facebook應用程序實現流體畫布。我使用的腳本setAutoGrow設置畫布長度
window.fbAsyncInit = function() {
FB.Canvas.setAutoGrow();
}
就在我初始化我的應用程序,但它仍設置爲800像素。我應該如何使用這個功能?
我試圖爲我的Facebook應用程序實現流體畫布。我使用的腳本setAutoGrow設置畫布長度
window.fbAsyncInit = function() {
FB.Canvas.setAutoGrow();
}
就在我初始化我的應用程序,但它仍設置爲800像素。我應該如何使用這個功能?
請參閱本頁面:
https://developers.facebook.com/docs/reference/javascript/FB.Canvas.setAutoGrow/
「這個功能,如果你知道你的內容會改變大小是有用的,但你不知道什麼時候會有輕微的延遲,因此,如果您知道您的內容何時更改大小,您應該自己調用setSize(並保存用戶的CPU週期)。「
所以,如果你有一些JavaScript函數,增加高度,你可以調用的setSize方法,否則setAutoGrow並指定一個或長或短interva
一遍又一遍地通過文檔,但不是運氣呢! –
Try with following.It will auto resize your iframe.
<html>
<head>
<script src="./includes/js/jquery.min.js"></script>
<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>
<script type="text/javascript">
window.fbAsyncInit = function(){
FB.init({appId: 'appid', status: true, cookie: true, xfbml: true});
FB.Canvas.setAutoResize();};
function setSize(){
FB.Canvas.setAutoResize();}
</script>
</head>
<body style="overflow: hidden" onload="setSize()">
我可以嘗試,但文檔說明[setAutoResize()](http://developers.facebook.com/docs/reference/javascript/FB.Canvas.setAutoResize/)將從明年開始過時。所以我將不得不堅持setAutoGrow()... –
如果你正在嘗試使用一種流體畫布,然後不需要設置iframe的大小。事實上,你不應該這樣稱呼它,因爲FB中存在一個bug;當設置爲流體時,調用iframe的大小應該什麼也不做 - 實際上情況並非如此,並且調用得到處理。有記錄的對這個位置的錯誤:http://developers.facebook.com/bugs/272509486115193但FB都認爲這種低優先級(!令我煩惱)
爲了獲得流體正常工作,請參考以下文檔:https://developers.facebook.com/blog/post/549
您需要請確保頁面上的內容容器的高度設置爲100%,如上面鏈接的文檔頁面上的說明。
之前</body>
標籤,我寫了下面的代碼。
<div id="fb-root"></div>
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
appId: '<?php echo YOUR_APP_ID ?>',
cookie: true,
xfbml: true,
oauth: true
});
FB.Canvas.setAutoGrow(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>
它對我來說工作正常。
高級應用程序設置中height
是否爲Fixed or Fluid
並不重要。
FB.Canvas.setAutoGrow(true);
沒有在我的應用程序中工作,但我發現我錯過了<div id="fb-root"></div>
代碼。我只是把它放在<script type="text/javascript">
之前,並解決了問題。
只是爲了可能幫助其他人,請嘗試從代碼中刪除http或https。這裏是我的(注意ChannelUrl線):
<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 : 'YOUR_APP_ID', // App ID
channelUrl : '//WWW.YOURURL.COM/FOLDER', // Channel File
status: true,
cookie: true,
xfbml: true
});
FB.Canvas.setAutoGrow();
}
</script>
我刪除了http/https後,它在所有瀏覽器上都能正常工作。
好吧...只是想補充一點,我目前正在測試我的應用程序從本地主機在Facebook上。 –