2

Facebookアプリのページの高さが変更されないという問題があります。同様の問題を抱えている人々からの質問がたくさんあることを私は知っています。しかし、FB.Canvas.setSize()、FB.Canvas.setAutoGrow()、および2秒ごとにキャンバスページのサイズを「変更する」関数を設定しようとしましたが、何も機能しません。

編集

私は今、 (私が理解しているように)動作するはずの最小限のコードでそれを試しましたが、動作しません。

コードは次のとおりです。

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Test</title>
        <style type="text/css">body { overflow: hidden; }</style>
    </head>
    <body>
        <div id="fb-root"></div>
        <script type="text/javascript" src="https://connect.facebook.net/en_US/all.js"></script> 
        <script type="text/javascript">
            window.fbAsyncInit = function() {
                FB.init({
                    appId: "xxxxxxxxxxxx",
                    cookie: true
                });
            };
            window.onload = function() {
                FB.Canvas.setAutoGrow(100);
            }
        </script>
        <div style="height: 1000px; width: 20px; background-color: #006;"></div>
        <div>End</div>
    </body>
</html>

これがアプリ設定のスクリーンショットです:

ここに画像の説明を入力してください

4

4 に答える 4

1

私はこの問題を解決できました。これは私が考えた変更です:

  • facebook lib をロードする script タグを削除します。
  • facebook lib をロードするための JS コードを追加します。
  • このコードを開始 body タグのすぐ下に移動します。

これらの手順がすべて必要かどうかはわかりません。

動作するコードは次のとおりです。

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Test</title>
        <style type="text/css">body { overflow: hidden; }</style>
    </head>
    <body>
        <div id="fb-root"></div>
        <script>
            window.fbAsyncInit = function() {
                FB.init({
                    appId: "xxxxxxx",
                    status : true,
                    cookie: true
                });
                FB.Canvas.setAutoGrow();
            };

            (function(d, debug){
                var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
                if (d.getElementById(id)) {return;}
                js = d.createElement('script'); js.id = id; js.async = true;
                js.src = "//connect.facebook.net/en_US/all" + (debug ? "/debug" : "") + ".js";
                ref.parentNode.insertBefore(js, ref);
            }(document, /*debug*/ true));
        </script>
        <!-- page content -->
    </body>
</html>
于 2013-02-03T19:04:56.003 に答える
1

AutoGrow がブリキに書かれていることを正確に実行するという問題に遭遇しました。ページを拡大します (ヒント: 縮小しません)。最終的に行ったのは次のとおりです。

FB.init({
    appId : 'appid',
    status : true,
    cookie : true
});
FB.Canvas.setSize({height:600});
setTimeout("FB.Canvas.setAutoGrow()",500);
于 2013-02-01T11:57:14.590 に答える
1

サイトのサイズを複数回変更する必要がない場合は、CPU パワーを節約するために FB.Canvas.SetSize() のみを使用する必要があります;)

于 2012-12-18T15:59:45.783 に答える
1

両方のサイズ変更機能は必要ありません。FB.Canvas.setAutoGrow()通話後のある時点で電話するだけFB.init()です。

于 2012-12-18T15:43:08.557 に答える