我有一个使用Javascript SDK的应用,并且正在通过FB.Canvas.setSize();
初始确定高度。这工作正常:
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '223615011031939',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
// channelUrl : 'http://www.yourdomain.com/channel.html', // Custom Channel URL
oauth : true //enables OAuth 2.0
});
FB.Canvas.setSize();
};
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
</script>
但是说页面上的内容会扩展,使得高度大于init之后设置的iFrame大小。我尝试使用FB.Canvas.setAutoGrow();
通过它传递的各种参数,但它会给我一个刷新循环,并且每次都会将高度扩展一点。
所以我的问题是,如何使setAutoGrow
函数适当地工作,仅在内容增长而不是按设定的时间间隔调整iFrame的大小?如果它只能按设定的间隔进行,则仅在内容实际增长时刷新。
提前再次感谢!
答案 0 :(得分:0)
参考此页:
https://developers.facebook.com/docs/reference/javascript/FB.Canvas.setAutoGrow/
“如果你知道你的内容会改变大小,但你不知道什么时候这个功能很有用。会有一点延迟,所以如果你知道你的内容何时改变大小,你应该自己调用setSize(并保存)用户的CPU周期)。“
所以,如果你有一些增加高度的javascript函数你可以调用setSize方法,否则setAutoGrow并指定更长或更短的间隔