间歇性iFrame高度

时间:2011-11-10 10:45:30

标签: javascript facebook facebook-javascript-sdk facebook-iframe facebook-java-sdk

我有这段代码:

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

大约50%的时间正确调整我的iFrame大小。另外50%的时间它没有调整大小,并且我的控制台上出现以下错误:

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

起初我认为这是我嵌入Facebook Javascript SDK的错误,但是为什么它有时会工作而不是在其他时间?

1 个答案:

答案 0 :(得分:1)

可能是某种“竞争条件”,所以只要等到FB被定义:

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

如果不定义FB,它将每10毫秒检查一次,直到定义完毕。