让我们从头开始。
情况:
我有一个应用程序。当我从Facebook主搜索栏中按名称(智能城市项目)搜索应用程序时,我看到Facebook中加载的应用程序,以及用于浏览内容的单个滚动条(https://apps.facebook.com/smartcityproject/)。一切都好。
当我进入页面(https://www.facebook.com/smartCanada)并单击应用程序选项卡时,它也会将我带到Facebook内的应用程序,但这个Facebook上下文不同(https://www.facebook.com/smartCanada/app_253415468099353 )。这里我们有一个来自Facebook的主滚动,以及来自页面iframe的内部滚动。
问题:
我必须只有一个卷轴。
文档(以及一些帖子,博客和论坛)说我可以使用FB.Canvas.setSize或setAutoGrow(https://developers.facebook.com/docs/reference/javascript/FB.Canvas.setSize/),但是我使用这些方法得到以下javascript错误:
Uncaught TypeError: Object #<Object> has no method 'setAutoResize'
在文件connect.facebook.net/en_US/all.js,第74行
问题:
任何人都知道我做错了什么? 'setAutoResize'方法不应该出现在Facebook库中吗?我必须等一些脚本加载?该方法实际上是否有效或不是?还有另一种方法可以改变iframe的高度吗?
感谢。
答案 0 :(得分:0)
问题是你的脚本在这段代码时停止工作:
<script type="text/javascript">
var userLanguage = '';
window.fbAsyncInit = function(){
// ...
FB.Canvas.setAutoResize();
// ...
};
// Load the SDK Asynchronously
// ...
</script>
FB.Canvas.setAutoResize();
现在已弃用,因此JavaScript会引发错误。您需要将此行替换为FB.Canvas.setAutoGrow();
,或将其删除。
在脚本中还有第二个错误:
<script type="text/javascript">
jQuery(document).ready(function() {
FB.Canvas.setAutoGrow();
}
</script>
将其更改为:
<script type="text/javascript">
jQuery(document).ready(function() {
FB.Canvas.setAutoGrow();
})
// Closing brace was missing!!
</script>