从我的研究来看,这似乎是一个重新出现的问题。我正在使用以下代码来调整iframe的大小,它目前正常工作......即调整iframe的大小以适应更大的内容,但它不会再缩回!
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
/* Init fb Resize window */
FB.Canvas.setAutoResize(7);
FB.init({
appId:'<?php echo Yii::app()->params['fbAppId']; ?>',
status: true,
cookie: true,
xfbml: true
});
};
</script>
代码位于html文件的最末端,在结束正文标记之前。
答案 0 :(得分:0)
在致电 FB.init()
之前调用 FB.Canvas.setAutoResize(7); 是不合逻辑的此外,您不应在 window.fbAsyncInit
中调用 FB.Canvas.setAutoResize(7);这是一个恰当的例子
window.fbAsyncInit = function() {
FB.init({
appId : js_fb_app_id,
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
oauth : true
});
};
$(document).ready(function(){
FB.Canvas.setAutoResize();
});
使用jQuery。这样,您可以确保在加载DOM时调整页面大小,而不是在此之前。这样您就可以将代码放在页面的任何位置。
将 FB.Canvas.setAutoResize 设置为700毫秒。你有什么特别的理由吗?默认值为100毫秒
答案 1 :(得分:0)
最简单的方法是在页面完全加载后调用setSize(),如下所示:
<script type='text/javascript'>
window.onload=function() {
FB.Canvas.setSize({width:760,height:document.body.offsetHeight});
}
</script>
除非您将SDK用于其他内容,否则实际上并不需要FB.init。
答案 2 :(得分:0)
我的https://fb.pienternet.be/overview上的应用程序在几个星期内面临完全相同的问题 - 尝试了很多东西,但没有一个工作..使用setTimeout,手动使用setSize,新的setAutoGrow,它们的组合......当在iframe中从长页面导航到短页面时,以及从短页面到长页面导航时都会发生这种情况。
对我来说,使用父URI导航到页面是什么意思;例如apps.facebook.com/pienternet/detail/5 ...我想这是SDK中的一个错误,也会在Facebook错误跟踪平台上发布。
两个屏幕截图清楚地说明了这一点: