我有这段代码:
<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的错误,但是为什么它有时会工作而不是在其他时间?
答案 0 :(得分:1)
可能是某种“竞争条件”,所以只要等到FB被定义:
window.fbAsyncInit = function FbAsynchInit() {
if (typeof FB != "undefined" && FB) {
FB.Canvas.setSize({ height: 6000 });
} else {
window.setTimeout(FbAsynchInit, 10);
}
}
如果不定义FB,它将每10毫秒检查一次,直到定义完毕。