jQuery晚于窗口加载

时间:2010-09-13 14:59:15

标签: jquery internet-explorer-8 cufon

我正在使用Cufon.replace来替换网站上的某些文字。目前在IE8标准模式下,当它在$(文档).ready之外运行时,它只发生了大约50%的时间,其余的时间发生了DOM更改(使用开发工具栏中的IE8查看)但没有文本是显示。

禁用替换,并通过控制台手动应用它会正确更新所有文本。 将它包装在$(document).ready中会阻止它发生 - 没有DOM修改(据我从dev工具栏中可以看出)。但是我无法从控制台手动重新应用 - 所以它可能对我撒谎。

将其包含在$(window).load中似乎与$(document).ready

具有相同的效果

请注意这只影响ie8“标准模式”。它在Firefox和IE7中运行良好。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我以前经历过这个...我会将它包装在匿名函数中,你也可以使用一个简单的setTimeout来延迟它(可能不需要)。

(function( $ ){ 
   // Your Cufon.replace()
   Cufon.replace('h1', { fontFamily: 'stack-overflow', hover: true });
   Cufon.now();

   // OPTIONAL - Delay by 150ms (you can experiment with this value)
   setTimeout(function(){ Cufon.refresh(); }, 150); 

})( jQuery );