我將a Facebook app從FBML轉換爲iFrame(使用PHP SDK),現在已經顯示了與以前相同數量的內容(徽標,Flash遊戲和包含3個鏈接的行)的垂直滾動條。但是之前我沒有任何滾動條。Facebook的iFrame應用程序 - 擺脫垂直滾動條?
如果我將應用程序設置爲自動調整大小,則內容的下半部分根本不顯示 - 這很糟糕,那麼Flash遊戲無法播放。
我周圍搜索和所有建議的解決方案都涉及Javascript,但我實際上使用PHP SDK。是不是隻有PHP/CSS的解決方案?
下面我當前的代碼:
<?php
require_once('facebook.php');
define('FB_API_ID', 'XXX');
define('FB_AUTH_SECRET', 'XXX');
$facebook = new Facebook(array(
'appId' => FB_API_ID,
'secret' => FB_AUTH_SECRET,
'cookie' => true,
));
if (! $facebook->getSession()) {
printf('<script type="text/javascript">top.location.href="%s";</script>',
$facebook->getLoginUrl(
array('canvas' => 1,
'fbconnect' => 0,
#'req_perms' => 'user_location',
)));
exit();
} else {
try {
$me = $facebook->api('/me');
$first_name = $me['first_name'];
$city = $me['location']['name'];
$female = ($me['gender'] == 'male' ? 0 : 1);
$avatar = 'http://graph.facebook.com/' . $me['id'] . '/picture?type=large';
} catch (FacebookApiException $e) {
exit('Facebook error: ' . $e);
}
}
# print the logo, the flash game and 3 links
?>
而且我不知道如果我的PHP腳本應該打印
<html>
<body>
.....
</body>
</html>
?目前我只打印身體內部的內容。
而且我不知道這是一個好主意,通過PHP的頭(「位置:....」)來代替top.location.href = ....在我的代碼;?
1)'header'不會工作,因爲你是一個iframe 2容器內工作),你應該換行'window.fbAsyncInit'方法裏面** **所有FB相關JS功能(我的意思是這裏的' FB.init') – ifaour 2011-05-09 07:57:59
不幸的是,我試過了你的fbAsyncInit-suggestion(來自http://developers.facebook.com/docs/reference/javascript/?),它不適用於Google Chrome:iframe內容僅在底部切斷。 – 2011-05-09 08:11:42
像[this](http://pastebin.com/aDNpR3Kf)應該工作。 – ifaour 2011-05-09 08:36:30