jQuery 晚于窗口加载

发布于 2024-09-18 12:50:05 字数 442 浏览 3 评论 0原文

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

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

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

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

有什么想法吗?

I am using Cufon.replace to font replace some text on the site. Currently in IE8 standards mode when this is run outside a $(document).ready it is only happening ~50% of the time the rest of the time the DOM changes have occurred (viewing with IE8 built in dev toolbar) but no text is displayed.

Disabling the replace, and applying it manually through the console updates all the text correctly.
Wrapping it in $(document).ready stops it from ever occurring - no DOM modifications (as far as I can tell from dev toolbar). However I cannot reapply manually from the console - so it may be lying to me.

Wrapping it in $(window).load seems to have the same effect as $(document).ready

Please note this only effects ie8 "Standards mode". It works fine in Firefox and IE7.

Any thoughts?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

美人骨 2024-09-25 12:50:05

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

I've experienced this before... I would wrap it in anonymous function and you can also use a simple setTimeout to delay it as well (may not be needed).

(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 );
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文