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 options属性集合操作代码
Dec 28 Javascript
Jquery实现图片放大镜效果的思路及代码(自写)
Oct 18 Javascript
多个jquery.datatable共存,checkbox全选异常的快速解决方法
Dec 10 Javascript
一个支付页面DEMO附截图
Jul 22 Javascript
浅谈Javascript中匀速运动的停止条件
Dec 19 Javascript
JavaScript中的Truthy和Falsy介绍
Jan 01 Javascript
vue的事件绑定与方法详解
Aug 16 Javascript
node.js自动上传ftp的脚本分享
Jun 16 Javascript
浅谈React Event实现原理
Sep 20 Javascript
配置eslint规范项目代码风格
Mar 11 Javascript
Vue数据绑定简析小结
May 07 Javascript
JQuery通过键盘控制键盘按下与松开触发事件
Aug 07 jQuery
最简单的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
20个PHP常用类库小结
2011/09/11 PHP
PHP投票系统防刷票判断流程分析
2012/02/04 PHP
浅谈php和js中json的编码和解码
2016/10/24 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
2017/06/09 PHP
Jquery中增加参数与Json转换代码
2009/11/20 Javascript
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
在图片上显示左右箭头类似翻页的代码
2013/03/04 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
javascript制作的网页侧边弹出框思路及实现代码
2014/05/21 Javascript
jquery Validation表单验证使用详解
2020/09/12 Javascript
推荐10 个很棒的 jQuery 特效代码
2015/10/04 Javascript
基于JavaScript实现快速转换文本语言(繁体中文和简体中文)
2016/03/07 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
2016/03/19 Javascript
AngularJs实现分页功能不带省略号的代码
2016/05/30 Javascript
深入理解jquery中的each用法
2016/12/14 Javascript
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
用vue构建多页面应用的示例代码
2017/09/20 Javascript
详解如何用VUE写一个多用模态框组件模版
2018/09/27 Javascript
在移动端使用vue-router和keep-alive的方法示例
2018/12/02 Javascript
JavaScript实现alert弹框效果
2020/11/19 Javascript
python 使用while写猜年龄小游戏过程解析
2019/10/07 Python
Python利用myqr库创建自己的二维码
2020/11/24 Python
Html5 webRTC简单实现视频调用的示例代码
2020/09/23 HTML / CSS
奥地利时尚、美容、玩具和家居之家:Kastner & Öhler
2020/04/26 全球购物
新西兰购物网站:TheMarket NZ
2020/09/19 全球购物
九月份红领巾广播稿
2014/01/22 职场文书
简单的项目建议书模板
2014/03/12 职场文书
投资意向书范本
2014/04/01 职场文书
会员卡清退活动总结
2014/08/27 职场文书
四风查摆问题自查报告
2014/10/10 职场文书
离职感谢信
2015/01/21 职场文书
导游词之阳朔遇龙河
2019/12/16 职场文书
linux下导入、导出mysql数据库命令的实现方法
2021/05/26 MySQL
十大最帅动漫男主 碓冰拓海上榜,第一是《灌篮高手》男主角
2022/03/18 日漫
CentOS 7安装mysql5.7使用XtraBackUp备份工具命令详解
2022/04/12 MySQL