JS window.onload事件的一些理解
1、window.onload 只会执行一次,同一页面中定义:
window.onload=funcA;
window.onload=funcB;
页面加载完成后,只会执行funcB,后面的会覆盖前面的。
同样,在使用模板页的情况下,也是如此:内容页的会覆盖模板页中的window.onload所触发的事件。
如果想要执行多个func ,js 的 解决方法:
<script>
if(window.attachEvent)//IE:如果浏览器中存在window.attachEvent函数则使用window.attachEvent函数,判断是否是IE还可以使用:if (document.all){//..}
window.attachEvent("onload",function() {alert("add method");});
else //FireFox...
window.addEventListener("load",function() {alert("add method");},true);
</script>
2、window.onload 和 jQuery中的$(document).ready()
window.onload是等到页面完全加载完成才会触发,页面完全下载后,页面中所有的DOM元素都是可以访问的.这种方式有一个很大的优点:不用考虑DOM元素加载的顺序.
而$(document).ready()事件,则是在DOM完全就绪时触发,并不要求页面所有DOM元素加载到浏览器.当HTML解析为DOM元素之 后,事件就可以运行了.这种方式优于onload()事件在
于:$(document).ready()可以在页面没有完全下载时,操作页面的DOM元 素.
举个直观的例子:如果某个页面需要处理很多的图像,我们就可以利用ready()事件来控制图像<image>元素的行为,比如显示隐藏,翻 转图像等等.而如果用widow.onload()事件则需要等页
面所有的图像完全下载之后,才可以访问图像元素.而如果需要给图像添加链接,则也是需要 在所有的图像下载完成之后,才可以看出效果了.
所以在这种情况下我们更应该使用$(document).ready()事件了.
但如果想操作图像的高度宽度等属性,则用onload()事件等待图像下载完毕之后,才可以访问图像的第个属性了.
在jQuery中也提供了一等效于onload()的事件的 .load()方法.
引用:http://blog.csdn.net/chenlei65368/article/details/4544823
http://blog.csdn.net/yinyaling/article/details/5495779