0

Javascript SDK を使用するアプリがあり、高さは最初に によって決定されFB.Canvas.setSize();ます。これは正しく機能しています:

<div id="fb-root"></div>
<script>
              window.fbAsyncInit = function() {
                FB.init({
                  appId  : '223615011031939',
                  status : true, // check login status
                  cookie : true, // enable cookies to allow the server to access the session
                  xfbml  : true,  // parse XFBML
                  // channelUrl  : 'http://www.yourdomain.com/channel.html', // Custom Channel URL
                  oauth : true //enables OAuth 2.0
                });

                FB.Canvas.setSize();

              };

              (function() {
                var e = document.createElement('script');
                e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
                e.async = true;
                document.getElementById('fb-root').appendChild(e);
              }());
            </script>

しかし、ページに拡張するコンテンツがあり、初期化後に設定された iFrame サイズよりも高さが大きくなるとします。FB.Canvas.setAutoGrow();さまざまなパラメータを渡して使用してみましたが、更新ループが発生し、そのたびに高さが少しずつ拡張されます。

setAutoGrowだから私の質問は、設定された間隔ではなく、コンテンツが大きくなったときにのみiFrameのサイズを変更して、関数を適切に機能させるにはどうすればよいですか? 設定された間隔でしか更新できない場合は、コンテンツが実際に大きくなったときにのみ更新してください。

よろしくお願いします!

4

1 に答える 1

0

このページを参照してください:

https://developers.facebook.com/docs/reference/javascript/FB.Canvas.setAutoGrow/

「この関数は、コンテンツのサイズが変更されることがわかっているが、いつ変更されるかがわからない場合に役立ちます。わずかな遅延が発生するため、コンテンツのサイズが変更されるタイミングがわかっている場合は、自分で setSize を呼び出す必要があります (そして、ユーザーの CPU を節約します)。サイクル)」。

したがって、高さを増やす JavaScript 関数がある場合は setSize メソッドを呼び出すことができます。

于 2011-10-06T21:21:04.067 に答える