Facebook App iFrame - Использование FB.Canvas.setSize (); и FB.Canvas.setAutoGrow (); - PullRequest
0 голосов
/ 06 октября 2011

У меня есть приложение, которое использует 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 после init.Я попытался использовать FB.Canvas.setAutoGrow(); с различными параметрами, передаваемыми через него, но это дало бы мне цикл обновления и немного, но каждый раз увеличивал высоту.

Так что мой вопрос, как мне получить * 1008?* Функция работает соответствующим образом, изменяя размер iFrame только тогда, когда контент растет, а не через заданные интервалы?Если это возможно только через заданные интервалы, обновляйте только тогда, когда содержимое действительно увеличивается.

Еще раз спасибо заранее!

1 Ответ

0 голосов
/ 07 октября 2011

См. Эту страницу:

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

"Эта функция полезна, если вы знаете, что ваш контент изменит размер, но вы не знаете, когда. Будет небольшая задержка, поэтому, если вы знаете, когда ваш контент меняет размер, вам следует вызвать setSize самостоятельно (и сохранить ЦП вашего пользователя). "

Итак, если у вас есть некоторые функции javascript, которые увеличивают высоту, вы можете вызвать метод setSize, в противном случае setAutoGrow и указать более длинный или более короткий интервал

...