0

让我们从头开始。

情况:

我有一个应用程序。当我从 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 的高度?

谢谢。

4

1 回答 1

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>
于 2013-01-09T17:19:48.520 回答