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 相关文章推荐
json格式的时间显示为正常年月日的方法
Sep 08 Javascript
jQuery选择器及jquery案例详解(必看)
May 20 Javascript
JS获取字符串实际长度(包含汉字)的简单方法
Aug 11 Javascript
Bootstrap CSS组件之面包屑导航(breadcrumb)
Dec 17 Javascript
BootStrap学习系列之布局组件(下拉,按钮组[toolbar],上拉)
Jan 03 Javascript
深入掌握 react的 setState的工作机制
Sep 27 Javascript
js阻止默认右键的下拉菜单方法
Jan 02 Javascript
Vue自定义全局Toast和Loading的实例详解
Apr 18 Javascript
JS实现判断数组是否包含某个元素示例
May 24 Javascript
JavaScript:ES2019 的新特性(译)
Aug 08 Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
Jan 08 Javascript
Element InputNumber 计数器的实现示例
Aug 03 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中SimpleXML函数用法分析
2014/11/26 PHP
使用Zttp简化Guzzle 调用
2017/07/02 PHP
Yii2框架类自动加载机制实例分析
2018/05/02 PHP
javascript生成/解析dom的CDATA类型的字段的代码
2007/04/22 Javascript
jquery 最简单易用的表单验证插件
2010/02/27 Javascript
分页栏的web标准实现
2011/11/01 Javascript
js防止DIV布局滚动时闪动的解决方法
2014/10/30 Javascript
jQuery焦点控制图层展示延迟隐藏的方法
2015/03/09 Javascript
jQuery基于排序功能实现上移、下移的方法
2016/11/26 Javascript
简单实现js选项卡切换效果
2017/02/09 Javascript
Vue中fragment.js使用方法详解
2017/03/09 Javascript
Vuejs入门教程之Vue生命周期,数据,手动挂载,指令,过滤器
2017/04/19 Javascript
基于hover的用法实例(推荐)
2017/07/04 Javascript
微信小程序自定义扫码功能界面的实现代码
2020/07/02 Javascript
uniapp实现可滑动选项卡
2020/10/21 Javascript
[03:51]吞吞映像 每周精彩击杀top10第二弹
2014/06/25 DOTA
[59:08]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第一局
2016/02/27 DOTA
Python的Django框架中forms表单类的使用方法详解
2016/06/21 Python
Python与R语言的简要对比
2017/11/14 Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
2018/03/19 Python
在Python中增加和插入元素的示例
2018/11/01 Python
python绘制直方图和密度图的实例
2019/07/08 Python
Python下利用BeautifulSoup解析HTML的实现
2020/01/17 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
2020/03/24 Python
python相对企业语言优势在哪
2020/06/12 Python
Python的控制结构之For、While、If循环问题
2020/06/30 Python
如何通过命令行进入python
2020/07/06 Python
phonegap常用事件总结(必看篇)
2017/03/31 HTML / CSS
美国在线眼镜商城:Eyeglasses.com
2017/06/26 全球购物
.NET面试题:什么是反射
2016/09/30 面试题
作为网站管理者应当如何防范XSS
2014/08/16 面试题
应聘英语教师求职信
2014/04/24 职场文书
教师师德表现自我评价
2015/03/05 职场文书
2016三八妇女节校园广播稿
2015/12/17 职场文书
JS实现简单控制视频播放倍速的实例代码
2021/04/18 Javascript
交互式可视化js库gojs使用介绍及技巧
2022/02/18 Javascript