Прерывистая высота кадра - PullRequest
0 голосов
/ 10 ноября 2011

У меня есть этот код:

<script type="text/javascript">  
     window.fbAsyncInit = function() { 
     FB.Canvas.setSize({ height: 6000 }); 
} 
window.fbAsyncInit();   
</script>

Это корректно изменяет размер моего iFrame примерно в 50% случаев. Остальные 50% времени он не изменяется, и на моей консоли появляется следующая ошибка:

Uncaught ReferenceError: FB is not defined
window.fbAsyncInit:122
(anonymous function)

Сначала я подумал, что это ошибка из-за того, что я встроил Facebook Javascript SDK, но потом почему он работает иногда, а не в других?

1 Ответ

1 голос
/ 10 ноября 2011

Может быть, что-то вроде "состояния гонки", поэтому просто подождите, пока не будет определен FB:

window.fbAsyncInit = function FbAsynchInit() { 
     if (typeof FB != "undefined" && FB) {
         FB.Canvas.setSize({ height: 6000 }); 
     } else {
         window.setTimeout(FbAsynchInit, 10);
     }
} 

Когда FB не будет определен, он будет проверять каждые 10 миллисекунд, пока не будет определен.

...