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

Jus*_*ner 3 html javascript safari iframe jquery

我有一个页面正在加载<iframe>.

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

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

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

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

Nic*_*ver 5

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

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