我目前正在尝试解决一个问题,以便我的facebook应用程序正确调整大小,因为它目前在底部被切断(Aka你无法使用滚动条滚动到托管应用程序的底部。)我有花了很多时间试图找出这个问题所以任何帮助将不胜感激。目前我调用FB.Canvas.setSize({height:2000});返回true然而没有任何反应,我仍然无法到达我的应用程序的底部。我甚至尝试按下按钮,但我仍然得到相同的结果。
更新:在尝试了一些想法之后,如果我将Facebook SDK同步加载到我的主页并在那里调用setSize,我就可以使用它。但是当我将画布导航到的不同页面加载Async或Sync时,我仍然没有运气?只是在我的主页上设置大小是行不通的,因为每个页面都有不同的大小。有没有人见过像这样的问题
以下是代码:
window.fbAsyncInit = function() {
FB.init({
appId : 'XXXXXXXXX', // App ID
cookie : true, // enable cookies to allow the server to access the session
oauth : true, // enable OAuth 2.0
xfbml : false // parse XFBML
});
FB.Canvas.setSize({ width: $(document).width(), height: $(document).height() });
setFriends();
};
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
$(document).ready(function() {
if (FB && FB.Canvas) {
FB.Canvas.setSize({ width: $(document).width(), height: $(document).height() });
}
});
答案 0 :(得分:1)
我在为客户创建应用时遇到了类似的问题。我无法让滚动条掉落。终于让那些离开然后和你一样的问题切断了我的应用程序的底部。这是我找到它的论坛帖子的链接。 Facebook改变了一些代码:
而不是FB.Canvas.setSize()
现在FB.Canvas.setAutoGrow()
。
希望它有所帮助。
答案 1 :(得分:0)
我通常在没有任何参数的情况下调用setSize,这似乎对我有用。
window.fbAsyncInit = function() {
FB.Canvas.setSize();
}
您在高级应用设置中将Canvas高度设置为什么?我发现使用“流体”引起的问题,不得不将其设置为“可设置(默认值:800px)”。
答案 2 :(得分:0)
我真的希望明确设置大小,因为它不会在页面加载之外发生变化。我不希望Facebook检查每个时间间隔调整大小的额外性能成本,并根据此更改大小。
好的电话。来自http://www.hyperarts.com/blog/facebook-iframe-apps-getting-rid-of-scrollbars/
的建议要减少用户的CPU周期,您还可以使用setSize函数。
FB.Canvas.setSize
加载Javascript SDK后,可以使用FB.Canvas.setSize()来删除这些滚动条。将以下代码放在索引页上的结束HEAD标记之前:
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.Canvas.setAutoGrow();
}
// Do things that will sometimes call sizeChangeCallback()
function sizeChangeCallback() {
FB.Canvas.setSize({ width: 520, height: 1400 });
}
</script>
这会告诉Facebook在页面加载后调整iFrame的大小,并在内容大小发生变化时再次调整。
同样,只有将画布高度设置为“可设置”时,这些功能才会起作用。