我在Facebook的FB.Canvas.setSize()功能方面遇到了严重问题。
我有一些文件包含大量数据,所以很自然地,我想要垂直扩展iFrame的大小。这是我使用的:
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript" language="javascript">
FB.init({
appId : '###',
status : true,
cookie : true // enable cookies to allow the server to access the session
});
FB.Canvas.setSize({ height: 2500 });
通过粉丝页面上的Tab安装显示其中一个文件时,此工作非常棒。但是,只要转到应用程序查看它,就不会发生调整大小。
我是否缺少关于Tab与Not Tab安装的内容?
其他细节: 我在应用程序设置中将Auto-Resize设置为true,因为这是老板想要它的方式(没有滚动条)。对于grins,我注释掉了setSize并在这些页面的代码中手动添加了FB.Canvas.setAutoResize(false),当不在选项卡安装中时,滚动条不显示。就像当我没有安装标签时,Javascript代码没有被激活。
感谢任何建议。
谢谢! 莉莎
编辑:终于终于让这个工作了。 @ matt-nathanson让我走上正轨,但最终的解决方案比他的建议更深入。这就是我最终做的事情:
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
window.fbAsyncInit = function() {
FB.init({
appId: '###',
status: true,
cookie: true,
oauth: true
});
};
(function() {
var e = document.createElement('script');
e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
window.onload = function () {
FB.Canvas.setSize({ height: 2500 });
}
</script>
解决方案来自:http://www.masteringapi.com/tutorials/facebook-javascript-sdk-best-practices/58/
答案 0 :(得分:1)
给这个旋转......
首先设置
body {height: 2500px;}
然后坚持下去:
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.Canvas.setSize({width: 520, height: 2500});
}
// Do things that will sometimes call sizeChangeCallback()
function sizeChangeCallback() {
FB.Canvas.setSize({width: 520, height: 2500});
}
</script>