有时候,如果我们只需要对DOM进行操作,那么这时就没必要等到页面全部加载了,我们需要更快的方法。Firefox有DOMContentLoaded事件可以轻松解决,可惜的就是IE没有。
推荐阅读:Javascript解决常见浏览器兼容问题
MSDN关于JavaScript的一个方法有段不起眼的话,当页面DOM未加载完成时,调用doScroll方法时,会产生异常。那么我们反过来用,如果不异常,那么就是页面DOM加载完毕了!
- function IEContentLoaded (w, fn) {
- var d = w.document, done = false,
- // only fire once
- init = function () {
- if (!done) {
- done = true;
- fn();
- }
- };
- // polling for no errors
- (function () {
- try {
- // throws errors until after ondocumentready
- d.documentElement.doScroll('left');
- } catch (e) {
- setTimeout(arguments.callee, 50);
- return;
- }
- // no errors, fire
- init();
- })();
- // trying to always fire before onload
- d.onreadystatechange = function() {
- if (d.readyState == 'complete') {
- d.onreadystatechange = null;
- init();
- }
- };
- }
这个函数是Diego Perini在07年就发布了这个方法,而且获得了广泛认同,以至于现在许多开源框架都是借鉴这种方法,譬如jQuery中的ready。如果以后需要用到IE的DomReady,就是它了。用法:
- IEContentLoaded( document.getElementById("test") , test );
- function test(){ }
分享标题:IE中JavaScriptDOMready应用技巧
标题网址:http://www.mswzjz.cn/qtweb/news10/454860.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能