我正在处理操纵网页的Google Chrome扩展程序,但是在部分加载(DOM)或满载(带有图像)之后。
现在似乎许多网站都使用
<!DOCTYPE html>
声明或某些变化,但许多其他人没有。问题主要是关于HTML医生的...我不确定其他人。
可以肯定地假设,如果网页没有Doctype声明,则$(window).load();不会被解雇?
一开始我使用$(document).ready();(对于加载DOM时),但后来切换到$(window).load();(也让图像也加载)。
问题是,现在$(window).load();如果没有Doctype,似乎不起作用。$(document).ready();似乎在所有页面上都可以使用,无论是否宣布医生。
也许这对具有同一问题的其他人可能很有用。我搜索了一些,找不到决定性的答案。看来我最终会使用类似的东西:
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/
.ready()
方法通常与<body onload="">
属性不相容。如果必须使用负载,则请勿使用.Dready()或使用JQuery的.load()
方法将加载事件处理程序连接到窗口或更具体的项目,例如图像。