Ошибка выдачи IE для FB.Canvas.setAutoResize (); - PullRequest
0 голосов
/ 09 сентября 2011

Это новая вещь. По крайней мере, до тех пор, пока IE 8 не получит метод не поддерживает all.js и, похоже, он не работает в FB.Canvas.setAutoResize ();

Это мешает нашему автоматическому изменению размера работать в IE, и я не могу найти обходной путь, который работает без каких-либо исключений.

window.fbAsyncInit = function() {
  FB.init({
    appId  : js_fb_app_id,
    status : true, // check login status
    cookie : true, // enable cookies to allow the server to access the session
    xfbml  : true,  // parse XFBML
    oauth   : true          
  });

  FB.Canvas.setAutoResize();
};

Ответы [ 2 ]

1 голос
/ 09 сентября 2011

Вы используете window.fbAsyncInit ловушку для выполнения FB.Canvas.setAutoResize ();

window.fbAsyncInit Функция будет выполняться при загрузке библиотеки Facebook, но не при загрузке всей страницы.

Если страница загружена не полностью, FB.Canvas.setAutoResize (); не будет работать правильно, поскольку не будет знать правильную высоту вашего контента. Вы можете использовать window.onload для выполнения FB.Canvas.setAutoResize (); при полной загрузке страницы.

Попробуйте это:

window.fbAsyncInit = function() {
    FB.init({
        appId  : js_fb_app_id,
        status : true, // check login status
        cookie : true, // enable cookies to allow the server to access the session
        xfbml  : true,  // parse XFBML
        oauth   : true          
    });
};
window.onload=function(){
    FB.Canvas.setAutoResize();
}
0 голосов
/ 09 сентября 2011

Не забудьте загрузить свой javascript-файл как асинхронный, это означает, что он будет выполняться только после завершения загрузки всего файла, в этом случае оператор import должен выглядеть следующим образом:

<script>
  window.fbAsyncInit = function() {
    FB.init({appId: 'your app id', status: true, cookie: true,
             xfbml: true});
  };
  (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);
  }());
</script>

Надеюсь, это поможет вам! :)

...