Я преобразовал a Facebook app из FBML в iFrame (с PHP SDK) и теперь имеет вертикальные полосы прокрутки, отображаемые для того же количества контента, что и раньше (логотип, флеш-игра и строка с тремя ссылками ниже). Но раньше у меня не было полос прокрутки.Facebook iFrame app - избавление от вертикальных полос прокрутки?
Если я установил настройку приложения Auto-Resize, то нижняя часть содержимого вообще не отображается - что плохо, тогда флеш-игра не воспроизводится.
Я искал вокруг, и все предлагаемые решения включают 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>
? В настоящее время я печатаю только то, что находится внутри тела.
И мне интересно, если это хорошая идея, чтобы заменить top.location.href = .... в моем коде заголовок в PHP («Location: ....»);?
1) 'header' не будет работать, потому что вы работаете внутри фрейма 2) вы должны обернуть ** все ** FB функции, связанные с JS внутри' метода window.fbAsyncInit' (я имею в виду здесь ' FB.init') – ifaour
К сожалению, нет: я пробовал ваше предложение fbAsyncInit (исходящее из http://developers.facebook.com/docs/reference/javascript/?), И оно не работает с Google Chrome: iframe содержимое просто обрезается внизу. –
что-то вроде [этого] (http://pastebin.com/aDNpR3Kf) должно работать. – ifaour