window.onload 加载完毕的问题及解决方案(上)


Posted in Javascript onJuly 09, 2009

解决方法,
一、Mozilla 提供了一个非公开的(undocumented)函数:

// for Mozilla browsers 
if (document.addEventListener) { 
document.addEventListener("DOMContentLoaded", init, false); 
}

二、对于 IE 浏览器,可以使用IE特有的 defer 属性:
<script defer type="text/javascript"> 
alert("DOM 加载完毕!") 
</script>

具有defer属性的脚本块会在DOM 加载完毕后执行。
非IE浏览器会忽略 defer 而直接执行 script 代码,因此,你可以有两种办法来屏蔽非IE浏览器执行这段针对IE的代码:
1.条件注释
<!--[if IE]> 
<script defer type="text/javascript"> 
alert("DOM 加载完毕!") 
</script> 
<![endif]-->

2.条件编辑

<script defer type="text/javascript"> 
// for Internet Explorer 
/*@cc_on @*/ 
/*@if (@_win32) 
alert("DOM 加载完毕!"); 
/*@end @*/ 
</script>

三、对于Safari,这里有一个jQuery的解决方案:

if (/WebKit/i.test(navigator.userAgent)) { // sniff 
var _timer = setInterval(function() { 
if (/loaded|complete/.test(document.readyState)) { 
clearInterval(_timer); 
init(); // call the onload handler 
} 
}, 10); 
}
Javascript 相关文章推荐
setTimeout和setInterval的浏览器兼容性分析
Feb 27 Javascript
我遇到的参数传递中 双引号单引号嵌套问题
Feb 11 Javascript
offsetParent 算法分析
Apr 05 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
Jun 23 Javascript
JQuery控制图片由中心点逐渐放大效果
Jun 26 Javascript
AngularJS ng-mousedown 指令
Aug 02 Javascript
javascript汉字拼音互转的简单实例
Oct 09 Javascript
JavaScript定义全局对象的方法示例
Jan 12 Javascript
jQuery Ajax实现跨域请求
Jan 21 Javascript
js实现图片轮播效果学习笔记
Jul 26 Javascript
Vue2 监听属性改变watch的实例代码
Aug 27 Javascript
Ant Design的Table组件去除
Oct 24 Javascript
最简单的jQuery程序 入门者学习
Jul 09 #Javascript
Jquery 组合form元素为json格式,asp.net反序列化
Jul 09 #Javascript
JS 巧妙获取剪贴板数据 Excel数据的粘贴
Jul 09 #Javascript
JavaScript 继承的实现
Jul 09 #Javascript
jquery text,radio,checkbox,select操作实现代码
Jul 09 #Javascript
javascript 字符 Escape,encodeURI,encodeURIComponent
Jul 09 #Javascript
jQuery 1.3 和 Validation 验证插件1.5.1
Jul 09 #Javascript
You might like
php 静态变量的初始化
2009/11/15 PHP
php表单提交问题的解决方法
2011/04/12 PHP
php无限遍历文件夹示例分享
2014/03/04 PHP
微信公众平台开发之天气预报功能
2015/08/31 PHP
如何使用GDB调试PHP程序
2015/12/08 PHP
注释PHP和html混合代码的小技巧(分享)
2016/11/03 PHP
PHP实现验证码校验功能
2017/11/16 PHP
php实现在线考试系统【附源码】
2018/09/18 PHP
Gambit vs CL BO3 第二场 2.13
2021/03/10 DOTA
JavaScript中的常见问题解决方法(乱码,IE缓存,代理)
2013/11/28 Javascript
js 数值转换为3位逗号分隔的示例代码
2014/02/19 Javascript
JavaScript中的anchor()方法使用详解
2015/06/08 Javascript
javascript顺序加载图片的方法
2015/07/18 Javascript
JavaScript之DOM插入更新删除_动力节点Java学院整理
2017/07/03 Javascript
Vue中this.$router.push参数获取方法
2018/02/27 Javascript
详解vue中async-await的使用误区
2018/12/05 Javascript
在vue项目中引入vue-beauty操作方法
2019/02/11 Javascript
create-react-app中添加less支持的实现
2019/11/15 Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
2020/08/06 Javascript
python client使用http post 到server端的代码
2013/02/10 Python
Python爬虫中urllib库的进阶学习
2018/01/05 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
基于Python的PIL库学习详解
2019/05/10 Python
python实现canny边缘检测
2020/09/14 Python
adidas官方旗舰店:德国运动用品制造商
2017/11/25 全球购物
lululemon美国官网:瑜伽服+跑步装备
2018/11/16 全球购物
Bluebella法国官网:英国性感内衣品牌
2019/05/03 全球购物
西安当代医院管理研究院笔试题
2015/12/11 面试题
人事专员岗位职责
2013/11/20 职场文书
小学科学教学反思
2014/01/26 职场文书
2014年冬季防火方案
2014/05/21 职场文书
建筑工地宣传标语
2014/06/18 职场文书
开展创先争优活动总结
2014/08/28 职场文书
技术经济专业求职信
2014/09/03 职场文书
教育合作协议范本
2014/10/17 职场文书
Django框架中模型的用法
2022/06/10 Python