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 方法,否则 setAutoGrow 并指定更长或更短的间隔

于 2011-10-06T21:21:04.067 回答