0

最初から始めましょう。

状況:

アプリがあります。Facebook のメイン検索バーから名前 (スマート シティ プロジェクト) で検索するアプリに移動すると、アプリが Facebook 内に読み込まれ、コンテンツをナビゲートするための単一のスクロール バーが表示されます ( https://apps.facebook.com/smartcityproject / )。ここで大丈夫です。

ページ (https://www.facebook.com/smartCanada) に移動してアプリ タブをクリックすると、Facebook 内のアプリにも移動しますが、この Facebook コンテキストは異なります ( https://www.facebook. com/smartCanada/app_253415468099353 )。ここでは、Facebook からのメイン スクロールと、ページ iframe からの内部スクロールがあります。

問題:

巻物を 1 つだけ取得する必要があります。

ドキュメント (およびいくつかの投稿、ブログ、フォーラム) には、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();か、削除する必要があります。

また、次の場合、スクリプトに 2 番目のエラーがあります。

<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 に答える