the*_*axx 9 javascript jquery events doctype google-chrome-extension
我正在开发一个操作网页的Google Chrome扩展程序,但是在部分加载(DOM)或完全加载(带图像)之后.
现在似乎很多网站都使用了
<!DOCTYPE html>
Run Code Online (Sandbox Code Playgroud)
声明,或其中的一些变体,但许多其他人没有.问题主要是关于HTML doctypes ...我不确定其他人.
假设如果网页没有DOCTYPE声明,则可以安全地使用$(window).load(); 不会被解雇?
一开始我使用$(document).ready(); (对于加载DOM时),但后来切换到$(window).load(); (也让图像加载).
问题是,现在$(window).load(); 如果没有DOCTYPE似乎不起作用.$(文件).就绪(); 无论是否声明DOCTYPE,似乎都适用于所有页面.
也许这对于有同样问题的其他人有用.我搜索了一下,没有找到决定性的答案.看来我最终会使用这样的东西:
if (window.document.doctype != null) {$(window).load(checkEntries);}
if (window.document.doctype == null) {$(document).ready(checkEntries);}
Run Code Online (Sandbox Code Playgroud)
我想我的问题是......这是正常的,必须检查DOCTYPE以了解使用哪个事件?或者我在这里遗漏了什么?
基本上,为什么$(window).load(); 如果没有DOCTYPE声明似乎不会开火?
基本上,你不应该使用$(window).load(),因为它不是完全支持的.如果你真的需要它,那么你上面的解决方案是你能做的最好的.jQuery页面很好地总结了这些警告:
与图像一起使用时加载事件的注意事项
开发人员尝试使用.load()快捷方式解决的常见挑战是在图像(或图像集合)完全加载时执行函数.应该注意有几个已知的警告.这些是:
- 它不能一致地工作,也不能可靠地跨浏览器
- 如果图像src设置为与之前相同的src,则它在WebKit中无法正确触发
- 它没有正确地冒泡DOM树
- 可以停止为已经存在于浏览器缓存中的图像触发
网址:http://api.jquery.com/load-event/
| 归档时间: |
|
| 查看次数: |
7455 次 |
| 最近记录: |