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 相关文章推荐
用JavaScript实现UrlEncode和UrlDecode的脚本代码
Jul 23 Javascript
javascript 上下banner替换具体实现
Nov 14 Javascript
Node.js中创建和管理外部进程详解
Aug 16 Javascript
盘点javascript 正则表达式中 中括号的【坑】
Mar 16 Javascript
JavaScript中文件上传API详解
Apr 01 Javascript
利用D3.js实现最简单的柱状图示例代码
Dec 09 Javascript
vue-router 学习快速入门
Mar 01 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
Jul 19 Javascript
Vue.js实现分页查询功能
Nov 15 Javascript
mock.js模拟数据实现前后端分离
Jul 24 Javascript
vue keep-alive实现多组件嵌套中个别组件存活不销毁的操作
Oct 30 Javascript
vue 把二维或多维数组转一维数组
Apr 24 Vue.js
最简单的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读取IMAP邮件
2006/10/09 PHP
php用数组返回无限分类的列表数据的代码
2010/08/08 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
2019/09/10 PHP
Extjs ajax同步请求时post方式参数发送方式
2009/08/05 Javascript
js分解url参数(面向对象-极简主义法应用)
2012/08/09 Javascript
window.print打印指定div实例代码
2013/12/13 Javascript
js通过iframe加载外部网页的实现代码
2015/04/05 Javascript
使用JavaScript刷新网页的方法
2015/06/04 Javascript
JS本地刷新返回上一页代码
2016/07/25 Javascript
javascript 实现动态侧边栏实例详解
2016/11/11 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
2017/02/15 Javascript
微信小程序 支付功能(前端)的实现
2017/05/24 Javascript
JS检测window.open打开的窗口是否关闭
2017/06/25 Javascript
JavaScript中Hoisting详解 (变量提升与函数声明提升)
2017/08/18 Javascript
微信小程序实现验证码获取倒计时效果
2018/02/08 Javascript
jQuery实现鼠标响应式淘宝动画效果示例
2018/02/13 jQuery
Vue 组件注册实例详解
2019/02/23 Javascript
JavaScript 自定义html元素鼠标右键菜单功能
2019/12/02 Javascript
详解django中自定义标签和过滤器
2017/07/03 Python
python输出电脑上所有的串口名的方法
2019/07/02 Python
python批量处理文件或文件夹
2020/07/28 Python
python设置环境变量的作用整理
2020/02/17 Python
整理HTML5移动端开发的常用触摸事件
2016/04/15 HTML / CSS
智能电子应届生求职信
2013/11/10 职场文书
幼儿园父亲节活动方案
2014/03/11 职场文书
团支部建设方案
2014/05/02 职场文书
解除劳动合同协议书
2014/09/17 职场文书
2015年工程部工作总结
2015/04/30 职场文书
2015年审计人员工作总结
2015/05/26 职场文书
出生证明范本
2015/06/15 职场文书
Python文件的操作示例的详细讲解
2021/04/08 Python
python引入其他文件夹下的py文件具体方法
2021/05/23 Python
MySQL数据库索引的最左匹配原则
2021/11/20 MySQL
Kubernetes部署实例并配置Deployment、网络映射、副本集
2022/04/01 Servers
Promise静态四兄弟实现示例详解
2022/07/07 Javascript