Safari中的奇怪的jQuery $(window).load()行为

时间:2010-03-26 19:54:57

标签: javascript jquery html iframe safari

我在<iframe>

中加载了一个页面

<iframe>内,我有一个耐心等待页面加载的功能,使用jQuery的$(window).load()事件,该事件应该等到所有页面内容(图片,在解雇之前加载了javascript,css等。

该函数然后使用<iframe>回调加载postMessage的页面,以发送<iframe>内容的高度。

我已经测试了IE7,IE8,Firefox 2,Firefox 3,Opera和Chrome中的功能,一切正常。当我尝试在Safari中加载页面时,该函数会在加载图像之前回调它...因此给出了错误的页面高度。

有没有人知道如何强制Safari在调用函数之前等待加载图像(在这种情况下jQuery解决方案更可取)?

1 个答案:

答案 0 :(得分:5)

检查偏移强制safari完成加载/布局内容,它会阻止javascript直到返回完成。您可以像这样使用它:

$(window).load(function() {
  var block = document.body.offsetWidth;
  //Rest of code...
});