窗口加载功能发生得太快了

时间:2014-03-14 21:55:11

标签: javascript jquery iframe load

我尝试调用一个函数,该函数在窗口完成加载时根据其父元素的当前高度设置元素的高度。

然而,Facebook评论iframe没有被考虑在内......

$(window).load(function() {
    columnHeight();
});

当页面中存在iframe时,如何处理window.load函数的任何想法?我想确保在所有完全加载后传递columnHeight()。

问题示例:

复制步骤:

  • 转到上面的网址
  • 快速滚动到页面底部
  • 请注意左侧边栏的大小适合与身体的高度匹配
  • 观看Facebook评论系统加载并导致左侧栏不再与身体包装的高度匹配

2 个答案:

答案 0 :(得分:1)

$(window).load()等待直接在要加载的页面的HTML中指定的内容。

它不会等待加载iframe。它不会等待脚本或ajax调用可能创建或加载的内容完成。

您引用的页面中的Facebook内容似乎是由Facebook脚本动态加载的,因此如果您想知道何时完成,您需要在Facebook API中找到Facebook事件,以便在完成后通知您。 Facebook事件API位于:https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/

在我看来,这可能是您所需要的,但您必须在页面中对其进行测试才能确定:

FB.Event.subscribe('xfbml.render', function() {
    // your code here
});

您也可能需要等到Facebook API本身加载后再调用它。

答案 1 :(得分:-2)

这可能是css特异性的问题

使用方法css()+!important