DOM文档流一般是从上到下执行,所以我们一般将标签放在最下面,有了元素之后,才能对元素进行操作,放在了元素前的话,js就不会执行额
但是如果想要将放在其他位置,元素上面,也可以执行;- - -可以使用:load事件,或者DOMContentLoaded事件
load事件,DOMContentLoaded事件相同点和不同点:
相同点:
将放在两者中,都可以达到页面加载完成后,再执行js
不同点:
load事件- - -dom页面所有内容加载完后,再执行js语句,包含图片、flash、css等
DOMContentLoaded- - -dom页面加载完毕,不包含图片、flash、css等就可以执行js语句
代码示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>页面加载事件</title>
<script>
/* window.onload = function() {
var btn = document.querySelector('button');
btn.addEventListener('click', function() {
alert('弹弹弹,弹走鱼尾纹!');
})
} */
window.addEventListener('load', function() {
var btn = document.querySelector('button');
btn.addEventListener('click', function() {
alert('弹弹弹,弹走鱼尾纹!');
})
})
window.addEventListener('DOMContentLoaded', function() {
alert('dom加载完毕,不包含图片 flash css 等就可以执行 加载速度比较快');
})
</script>
</head>
<body>
<button>点我弹弹弹</button>
<!-- <script>
var btn = document.querySelector('button');
btn.addEventListener('click', function() {
alert('弹弹弹,弹走鱼尾纹!');
})
</script> -->
</body>
</html>