Горизонтальная отключенная полоса прокрутки в Facebook Canvas с Firefox - PullRequest
2 голосов
/ 06 февраля 2012

Я отключил горизонтальную полосу прокрутки в приложении Facebook (FF9).

Я читал каждый пост здесь или в блогах по поводу подобных проблем. До сих пор я использовал setAutoGrow и overflow: hidden на body и html.

Как я могу решить эту проблему?

Спасибо!

1 Ответ

0 голосов
/ 06 февраля 2012

Проблема с https://connect.facebook.net/en_US/all.js. Эта проблема неоднократно отмечалась как ошибка, но никогда не подтверждалась Facebook (см. этот отчет об ошибке ).

Этот код также заботится о all.js неправильном обращении с защищенным соединением.

Обратите внимание, что для работы кода требуется http://jquery.com/.

Относительно полосы прокрутки

Хитрость заключается в том, чтобы загружать all.js асинхронно только после полной загрузки DOM. Затем найдите fbAsyncInit callback и продолжайте с setAutoGrow.

Вы также упомянули фиксированную ширину (520 пикселей) и overflow(-x): hidden. Это хорошая идея, хотя и не обязательно. Обратите внимание, что если вы решите пойти по этому пути, примените фиксированную ширину к элементу body, а не к некоторому внутреннему элементу обтекания.

См. Следующий код и прилагаемые комментарии.

$(function(){
    window.fbAsyncInit  = function()
    {
        // fixes the HTTPS issue
        // _https: (window.name.indexOf('_fb_https') > -1),
        // @version /*1328456404,169895806,JIT Construction: v505175,en_US*/
        FB._https           = true;

        // fix for all.js
        // the following line enforces using non-secure URL (why Facebook?)
        // FB.getDomain((c?'https_':'')+'staticfb',true)
        // @version /*1328456404,169895806,JIT Construction: v505175,en_US*/

        FB._domain.api      = 'https://api-read.facebook.com/';
        FB._domain.cdn      = 'https://s-static.ak.fbcdn.net/';
        FB._domain.staticfb = 'https://s-static.ak.facebook.com/';
        FB._domain.www      = 'https://www.facebook.com/';
        FB._domain.m        = 'https://m.facebook.com/';

        FB.init({appId: [app id], channelUrl: '[domain]/channel.php', status: true, cookie: true, oauth: true, xfbml: true});

        FB.Canvas.setAutoGrow(91);
        // it is good idea to ensure that page will always open top-most view when navigated internally
        FB.Canvas.scrollTo(0,0);
    };

    // Load the SDK Asynchronously after the DOM is loaded
    (function(d){
        var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
        js = d.createElement('script'); js.id = id; js.async = true;
        js.src = "https://connect.facebook.net/en_US/all.js";

        d.getElementsByTagName('head')[0].appendChild(js);
    }(document));
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...