Проблема с высотой приложения Facebook

В моем приложении facebook iframe моя домашняя страница немного длиннее (около 1500 пикселей), но второстепенные страницы меньше по высоте.

Я вижу, что между моим нижним колонтитулом и нижним колонтитулом facebook на второстепенных страницах много пустого пространства.

Я проверил источник iframe и обнаружил, что свойство высоты установлено правильно, но внутри тега стиля есть другое значение высоты, которое сохраняет высоту домашней страницы.

<iframe class="canvas_iframe_util noresize" frameborder="0" scrolling="no" id="iframe_canvas" name="iframe_canvas" src='javascript:""' height="600px" style="height: 1566px; overflow-y: hidden; "></iframe>

Ниже приведен код, который я использую для изменения размера фрейма (который находится на главной странице)

<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
    FB.init({
        appId: 'my app',
        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>

Мои вторичные страницы имеют динамический размер, поэтому я не могу использовать фиксированную высоту. Любая помощь, чтобы избавиться от лишнего пробела на моих второстепенных страницах, приветствуется.

Спасибо


person Tippu    schedule 01.12.2011    source источник


Ответы (2)


На днях я сделал приложение Facebook Canvas и написал этот небольшой код, чтобы решить проблему с высотой.

<script>
    FB.Canvas.setSize({ height: document.getElementById('wrapper').offsetHeight });
</script>

Конечно, этот код требует <div id="wrapper"></div> для переноса всей страницы. Вы должны убедиться, что все вещи в DOM загружены, прежде чем запускать его. Вот почему я поставил его прямо перед </body>. Но иногда могут возникнуть проблемы с изображениями с неопределенной высотой. Таким образом, либо вы указываете высоту всех ваших изображений, либо вы можете запустить ее с помощью jQuery и document.ready().

person Filip    schedule 01.12.2011

Вы можете/должны переключиться на использование FB.Canvas.setAutoGrow(), так как FB.Canvas.setAutoResize() скоро будет объявлено устаревшим.

Затем установите для параметра canvas height в настройках приложения значение: Устанавливаемый (по умолчанию: 800 пикселей).

В своем приложении вы можете использовать FB.Canvas.setAutoGrow() без каких-либо параметров. Я знаю, что это, по сути, то, что вы уже делаете, но по моему опыту это хорошо послужило мне. Это также решает любые проблемы, когда высота вашей страницы изменяется после начальной загрузки страницы.

person Moz Morris    schedule 01.12.2011