2

ページの読み込み時に Facebook アプリの高さとページ タブの高さを自動的に変更したいのですが、うまくいきません。

私が間違っている単純なことがあると確信していますが、それを特定することはできません。

これが私が使用している簡略化されたコードです: (++++カットアウトコードを示します)

<!DOCTYPE ++++ >
<html>
 <head>++++</head>
 <body>
  <div id="container">++++</div>
  <div id="fb-root"></div>
  <script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script> 
  <script type="text/javascript">
   FB.init({appId: '++++', status: true, cookie: true, xfbml: true });
   FB.Canvas.setSize();
  </script>
 </body>
</html>

前もって感謝します!

アップデート:

、 、 の下SettingsAdvanced、オプションをチェックしました。(私が見る限り、オプションはもうありません。おそらく名前が変更されています。)Canvas SettingsCanvas HeightfixedSettable

そのメソッドを呼び出すまでに、アプリは完全にロードされています。

少し調べてみると、アプリの高さとページ タブの高さが最初は正しいサイズになり、その後すぐに高さ1200px. (そして、私のfixed heightはに設定されてい600pxます。

更新: iframe コードでは、次のように表示されます: <iframe src="++ommited++?signed_request=++ommited++" frameborder="0" scrolling="AUTO" style="width:810px; height:1200px;padding:0px; margin:0px" marginheight="0px" marginwidth="0px"></iframe>. ご覧のとおりheight:1200px;、どちらが問題のように見えるかが示されています。

更新:アプリはデフォルトでアプリ設定で設定されたサイズになり、その後すぐにサイズが に変更されるよう1200pxです。これは、アプリとページのタブの高さを変更するための Facebook コードを削除しても発生します。

助言がありますか?ありがとう

4

4 に答える 4

2

Canvas がロードされているかどうかを確認する必要がありますFB.Canvas.setDoneLoading()

FB.Canvas.setDoneLoading( function(response) {
    console.log(response.time_delta_ms);
    FB.Canvas.setAutoGrow();
});

FB ドキュメント: https://developers.facebook.com/docs/reference/javascript/FB.Canvas.setDoneLoading/

于 2012-06-21T07:16:06.493 に答える
1
<style>
#wrap { width: 600px; height: 390px; padding: 0; overflow: hidden; }
#frame { width: 800px; height: 520px; border: 1px solid black; }
#frame {
    zoom: 0.75;
    -moz-transform: scale(0.75);
    -moz-transform-origin: 0 0;
    -o-transform: scale(0.75);
    -o-transform-origin: 0 0;
    -webkit-transform: scale(0.75);
    -webkit-transform-origin: 0 0;
}
</style>
于 2013-11-19T18:15:49.457 に答える
1

FB ページ内のページ タブのサイズを変更するために、この種の問題が発生しました。私の場合、Web サイトのページに次の変更を加えました。これは、FB ページにタブとしてレンダリングしたかったのです。

<html>
<head>
    <script type="text/javascript">
        window.fbAsyncInit = function()
        {
            FB.Canvas.setSize();
        }
    </script>
</head>

<body>
    ......
    ......
    ......
    <div id="fb-root"></div>
    <script type="text/javascript" src="http://connect.facebook.net/de_DE/all.js"></script>
    <script type="text/javascript">
        FB.init({
        appId: 'Your_App_Id', 
        status: true, 
        cookie: true, 
        xfbml: true
        });
        FB.Canvas.setAutoGrow();
    </script>
</body>
</html>

それがあなたを助けることを願っています。

于 2012-06-21T06:35:06.247 に答える
0

まず、アプリの設定でキャンバスの高さが「設定可能 (デフォルト: 800px)」に設定されていることを確認してください

次に、メソッドを呼び出している時点までにアプリが完全にロードされていますか (ページの高さに影響を与える可能性のあるすべての画像、css などに関して)。

それ以外の場合は、ページの高さを定期的にチェックし、iframe の高さを調整する FB.Canvas.setAutoGrow を試すことができます。

于 2012-06-16T13:15:59.870 に答える