不是说window.onload会等到页面所有资料都加载完毕后才执行,而$(document).ready()只要DOM树加载完毕就可以执行吗?那按理来说,$(document).ready()里的函数会比window.onload先执行才对,为什么测试结果根据浏览器不同而表现不同?
下面是代码和实验结果:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="./scripts/jquery-3.2.1.js" type="text/javascript"></script>
<script src="./scripts/common.js" type="text/javascript"></script>
</head>
<body>
<div class="box">
<ul class="menu">
<li class="level1">
<a href="#">格林芬多</a>
<ul class="level2">
<li><a href="#">哈利波特</a></li>
<li><a href="#">罗恩</a></li>
<li><a href="#">赫敏</a></li>
</ul>
</li>
<li class="level1">
<a href="#">斯莱哲林</a>
<ul class="level2">
<li><a href="#">哈利波特</a></li>
<li><a href="#">罗恩</a></li>
</ul>
</li>
<li class="level1">
<a href="#">赫夫帕夫</a>
<ul class="level2">
<li><a href="#">纽特</a></li>
</ul>
</li>
</ul>
</div>
<img src="xx.jpg"/>
</body>
<script>
$(document).ready(function(){
alert("hello,jquery1!");
});
window.onload = function(){
alert("hello,js1!");
};
</script>
</html>
[实验结果]:
Firefox:
jquery1(图片出现)->js1
Safari:
jquery1->js1->图片出现
Opera:
js1->jquery1(图片出现)
IE:
js1->jquery1(图片出现)
Chrome:
js1->jquery1(图片出现)
顺着问题,我自己尝试了一下。
应该是jquery3更新的问题。
恰巧也找了一个issues 讨论的这个。
机票:https://github.com/jquery/jqu...