Facebook: удаление вертикальной полосы прокрутки iFrame в закладке Application

Я закончил приложение facebbok и в настоящее время застревает при просмотре приложения в качестве вкладки приложения facebook....: отображается вертикальная полоса прокрутки. На самом деле я использовал следующий код для автоматического изменения размера приложения iframe:

window.fbAsyncInit = function() {
    FB.init({appId: FBAPP_ID, status: true, cookie: true, xfbml: true});
    FB.Canvas.setAutoResize(100);
    //FB.Canvas.setSize();
  };
  (function() {
    var e = document.createElement('script'); e.async = true;
    e.src = document.location.protocol +
      '//connect.facebook.net/en_US/all.js';
    document.getElementById('fb-root').appendChild(e);
  }());

iframe успешно изменяется при загрузке вкладки приложения, но вертикальная полоса прокрутки видима. Тело моего приложения имеет ширину 520 пикселей, параметры приложения настроены на автоматический размер и режим iframe. Когда я добавляю переполнение: скрытый в html-элементе, полоса прокрутки не видна, но я не хочу использовать переполнение: скрытый в html-теге, потому что страница также доступна как отдельная страница.

Есть ли у кого-нибудь идеи, как заставить facebook скрывать вертикальную полосу прокрутки, когда содержимое соответствует высоте iframe? (или это проблема в facebook (... снова)?

Спасибо заранее Denis

+9
источник поделиться
6 ответов

После того, как мы рассмотрели все решения, последний, внесший вклад в Firefox, добавлял overflow: hidden для стилей <html> и <body>.

CSS-код выглядит следующим образом:

html {
    overflow: hidden;
}

body {
    width: 520px;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
}

IE7 также иногда показывает полосы прокрутки, если вы не установите <body scroll="no">, поэтому имейте это в виду.

+5
источник

Были проблемы с этой функцией, так как были введены вкладки iframe. Отслеживание ошибок содержит довольно много связанных отчетов. В основном, наш опыт в том, что он полностью ненадежен. Иногда он работает как рекламируемый, иногда он работает только в некоторых браузерах, иногда он работает в зависимости от того, как вы загружаете JavaScript SDK, иногда один метод работает, а другой - нет, а иногда он вообще не работает.

+4
источник

Это код, который я использую для меня.

<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({
 appId  : '7575671676127', //enter your app id here
 status : true, // check login status
 cookie : true, // enable cookies to allow the server to access the session
 xfbml  : true// parse XFBML
 });

 FB.Canvas.setAutoResize(7);
 </script>
+3
источник

Перейдите в Настройки приложения → Интеграция с Facebook и выберите "Размер IFrame" = Автоматическое изменение размера

+2
источник

Просто убедитесь, что вы положили overflow: скрытое правило стиля для элемента body. Другой случай, когда firefox когда-нибудь решает показать полосу прокрутки.

+2
источник

Фактически FB.Canvas.setAutoResize() теперь известен как FB.Canvas.setAutoGrow(); он обновляется каждые 100 миллисекунд Facebook docs

поэтому код должен выглядеть не так, как этот atm

<div id="fb-root"></div>
<script type="text/javascript">
FB.init({
         appId  : '666',//your app id
         status : true,
         cookie : true,
         xfbml  : true
     });
FB.Canvas.setAutoGrow();
</script>
+2
источник

Посмотрите другие вопросы по меткам или Задайте вопрос