Прерывистая высота кадра
У меня есть этот код:
<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 ответ
Решение
Может быть, какое-то "состояние гонки", так что просто подождите, пока не определится FB:
window.fbAsyncInit = function FbAsynchInit() {
if (typeof FB != "undefined" && FB) {
FB.Canvas.setSize({ height: 6000 });
} else {
window.setTimeout(FbAsynchInit, 10);
}
}
Когда FB не будет определен, он будет проверять каждые 10 миллисекунд, пока не будет определен.