Skip to main content
 首页 » 编程设计

jQuery 晚于窗口加载

2026年07月31日6shanyou

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

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

将其包装在 $(window).load 中似乎与 $(document).ready 具有相同的效果

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

有什么想法吗?

请您参考如下方法:

我以前经历过这种情况...我会将其包装在匿名函数中,您也可以使用简单的 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 );