【问题标题】:Intermittent iFrame Height间歇 iFrame 高度
【发布时间】:2011-11-10 20:20:39
【问题描述】:

我有这个代码:

<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 的方式有误,但为什么它有时能工作而有时不能呢?

【问题讨论】:

  • 谢谢,但我已经尝试了那里的建议,但无济于事。我的问题也不是 Chrome 独有的,IE 和 FF 中的行为相同......
  • 我的答案中建议的代码怎么样?你也试过了吗?

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


【解决方案1】:

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

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

当 FB 没有被定义时,它将每 10 毫秒检查一次,直到它被定义。

【讨论】:

  • @tomis Facebook 指望他们的脚本加载速度足够快,可能有时情况并非如此,它仅在主脚本尝试调用它之后才加载。
  • 明白...只是想知道为什么 facebook 不关心是否后备...
猜你喜欢
  • 1970-01-01
  • 2011-10-05
  • 1970-01-01
  • 2011-11-29
  • 2010-12-24
  • 2012-12-09
  • 2014-05-15
  • 2014-08-10
相关资源
最近更新 更多