我的 Facebook 应用 iframe 高度停留在 800 像素。我在 facebook 开发人员的应用程序管理面板中将其设置为 2800 的固定高度。一些名为 .canvas_iframe_util 的样式覆层将其设置为 800 像素,我无法更改或编辑它。我假设它来自facebook。有人有什么想法吗?
非常感谢
尝试使用此功能并将正文溢出设置为隐藏
window.fbAsyncInit = function() {
FB.Canvas.setSize({ width: xx, height: XX });
}
和
body{
overflow:hidden;
}
并且记得在管理面板中将高度更改为流体
我有同样的问题,经过大量的研发后,我想出了以下针对不同浏览器的解决方案。所以我为所有浏览器实现了不同的 html 和 body 样式。它现在可以在每个浏览器上运行 :)
<?php
$u_agent = $_SERVER['HTTP_USER_AGENT'];
if(preg_match('/Firefox/i',$u_agent))
{
$style_overflow = "overflow:hidden;";
}
else
{
$style_scroll = "scroll='no'";
}
?>
<html style="<?php echo $style_overflow; ?>" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns='http://www.w3.org/1999/xhtml'>
<!---other html code -->
<body style="<?php echo $style_overflow; ?>" <?php echo $style_scroll;?>>
<script>
var fbAppId = '<?php echo FB_APP_ID?>';
window.fbAsyncInit = function()
{
FB.init(
{
appId: '<?php echo FB_APP_ID ?>',
status:true,
cookie: true,
xfbml: true,
oauth: true
}
);
function sizeChangeCallback() {
FB.Canvas.setAutoGrow();
}
FB.XFBML.parse();
FB.Canvas.setAutoGrow();
};
(function()
{
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js'; //hi_IN for language plugins
document.getElementById('fb-root').appendChild(e);
}()
);