由上一篇博客(初始JavaScript)已经知道JS是通过script标签在HTML页面中插入JavaScript。位置分别是head和body。
1、在head中插入JavaScript时,由于HTML文档是有浏览器从上到下依次载入的,所以在JavaScript被调用时就已经执行,此时页面还未加载。
2、在body中插入JavaScript时,页面在加载的时候会被执行。
放置与head标签之间
HTML代码
<html>
<head>
<title> 实例 </title>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script type="text/javascript" src="demo2.js"></script>
</head>
<body>
<div id="target">
</div>
<button id="btn">按钮</button>
</body>
</html>
demo2.js
var test = function(){
var span = document.createElement("span");
span.innerHTML="添加";
document.getElementById("target").appendChild(span);
}
document.getElementById("btn").onclick=test;
结果
没有运行。HTML从上往下运行到script标签时,进入demo2.js。进入demo2.js之后,先执行document.getElementById(“btn”).οnclick=test,但是这个时候页面没有加载完全,获取不到id为btn的元素。
这时可以用window.onload事件来加载HTML,例如:
window.onload=function(){
//这里存放当网页所有内容都加载完毕后,再执行的代码
var test = function(){
var span = document.createElement("span");
span.innerHTML="添加";
document.getElementById("target").appendChild(span);
}
document.getElementById("btn").onclick=test;
}
运行结果
放置与body标签之间
<html>
<head>
<title> 实例 </title>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
</head>
<body>
<div id="target">
</div>
<button id="btn">按钮</button>
<script type="text/javascript" src="demo2.js"></script>
</body>
</html>
demo2.js
var test = function(){
var span = document.createElement("span");
span.innerHTML="添加";
document.getElementById("target").appendChild(span);
}
document.getElementById("btn").onclick=test;
运行结果
总结:
当我们理解了HTML执行代码的顺序的时候,我们可以根据自己的需要选择合适的位置,一般情况下,我们可以放在head标签中,当我们需要提前加载整个页面时,我们可以使用window.onload事件。