浏览器在加载一个页面时,是按照自上向下的顺序加载的,读取一行运行一行(解释型语言的特点)。
如果将script标签写到页面的上边,就会先执行<script>,再执行<body>,所以如果执行到script时调用 doument中创建的对象,就会出错,因为对象还没定义,所以有两种解决办法:
- 将JS代码编写到 <body>后面
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title></title>
</head>
<body>
<button id="btn">按钮</button>
<script>
console.log(document);
// 获取对象
var btn = document.getElementById("btn");
// 给对象添加属性,并赋值(绑定处理函数)
// 这样当对应的事件触发时,的时候就执行相对应的函数
btn.onclick = function(){
alert("你点我干啥");
}
// 像这种为单击事件绑定的函数,我们称为单击响应函数
</script>
</body>
</html>
- 设置函数使页面加载完成之后才执行JS函数
思路:
页面加载完成也是一个事件,也可以设置执行函数。
所以我们可以将所有的JS代码都写到页面加载完成这个事件的执行函数中即可。
加载完成事件:onload 事件
onload 事件会在页面或图像加载完成后立即发生。
onload对应的对象是window
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title></title>
<script>
window.onload = function () {
console.log(document);
var btn = document.getElementById("btn");
btn.onclick = function () {
alert("你点我干啥");
};
};
</script>
</head>
<body>
<button id="btn">按钮</button>
</body>
</html>