我正在开发一个可以操作网页的 Google Chrome 扩展,但在它部分加载(DOM)或完全加载(带有图像)之后。
看来现在很多网站都使用
<!DOCTYPE html>
声明,或者它的一些变体,但许多其他人没有。问题主要是关于 HTML 文档类型...我不确定其他的。
是否可以安全地假设,如果网页没有 DOCTYPE 声明,则 $(window).load();不会被解雇吗?
一开始我使用 $(document).ready(); (当加载 DOM 时),但后来切换到 $(window).load(); (让图像也加载)。
问题是,现在 $(window).load();如果没有 DOCTYPE,似乎不起作用。 $(文档).ready();似乎适用于所有页面,无论是否声明了 DOCTYPE。
也许这对其他有同样问题的人有用。我搜索了一下,没有找到决定性的答案。看来我最终会使用这样的东西:
if (window.document.doctype != null) {$(window).load(checkEntries);}
if (window.document.doctype == null) {$(document).ready(checkEntries);}
我想我的问题是...必须检查 DOCTYPE 才能知道要使用哪个事件,这正常吗?或者我在这里遗漏了什么?
基本上,为什么 $(window).load();如果没有 DOCTYPE 声明,似乎不会触发?
基本上,您不应该使用 $(window).load(),因为它不完全受支持。如果您确实需要它,那么上面的解决方案就是您能做的最好的解决方案。 jQuery 页面很好地总结了这些注意事项:
与图像一起使用时加载事件的注意事项
开发人员尝试使用 .load() 解决的常见挑战
快捷方式是当图像(或集合)时执行一个函数
图像)已完全加载。有几个已知的警告
这是应该注意的。这些都是:
- 它不能一致地、可靠地跨浏览器工作
- 如果图像 src 设置为与之前相同的 src,则它不会在 WebKit 中正确触发
- 它没有正确地冒泡 DOM 树
- 可以停止触发已存在于浏览器缓存中的图像
URL: http://api.jquery.com/load-event/ http://api.jquery.com/load-event/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)