一、在html文檔中引入javascript代碼有兩種方式:
1.内嵌javascript代碼。如下所示:
<!DOCTYPE>
<html>
<head>
<title>example</title>
<script>
<!-- javascript code -->
</script>
</head>
</html>
2.引入javascript檔案。如下所示:
<!DOCTYPE>
<html>
<head>
<title>example</title>
<script src="example.js"></script>
</head>
</html>
二、javascript代碼引入位置及影響
1.内嵌js代碼位置
<!--<script>标簽放在<head>中時-->
<!DOCTYPE>
<html>
<head>
<title>example</title>
<script>
<!-- javascript code -->
</script>
</head>
</html>
如果放在
<head>
标簽裡面,會先執行js代碼,然後再呈現頁面的内容。
<!--<script>标簽放在<body>中時-->
<!DOCTYPE>
<html>
<head>
<title>example</title>
</head>
<body>
<!-- page content -->
<script>
<!-- javascript code -->
</script>
</body>
</html>
如果放在
<body>
标簽尾部,會先呈現頁面的内容,再執行js代碼。如果放在
<body>
中其他位置,則會在加載頁面内容到
<script>
标簽位置處執行js代碼,再繼續加載頁面。
注:對于内嵌js代碼,如何在頁面加載之後執行js代碼,常用方法如下:
1.如果js代碼寫在
标簽裡面,則用:
<head>
如果使用jquery,則可以用:
window.onload=function(){<!-- js代碼 -->};
或者:
$(document).ready(function(){<!-- js代碼 -->});
來實作,但是這三種方法是有差別的:
$(window).load(function(){<!-- js代碼 -->});
需要等到頁面内所有元素包括圖檔加載完畢後才能執行,而且
window.onload
不能同時編寫多個,如果有多個
window.onload
方法,隻會執行一個 。
window.onload
是DOM結構繪制完畢後就執行,不必等到加載完畢。 而且可以同時編寫多個,并且都可以得到執行 。
$(document).ready()
也是所有元素包括圖檔加載完畢才能執行,而且可以編寫多個。
$(window).load();
如果js代碼量很大的話,一般不建議直接内嵌js代碼,因為容易造成代碼備援,而且不好維護。
2.外部js檔案引入位置
<!--<script>标簽放在<head>中時-->
<!DOCTYPE>
<html>
<head>
<title>example</title>
<script src="example.js"></script>
</head>
<body>
<!-- page content -->
</body>
</html>
<!--<script>标簽放在<body>中時-->
<!DOCTYPE>
<html>
<head>
<title>example</title>
</head>
<body>
<!-- page content -->
<script src="example.js"></script>
</body>
</html>
如果在
<head>
标簽中引入外部js檔案,意味着必須等到全部js代碼都被下載下傳、解析和執行完成以後,才能開始呈現頁面的内容。
如果想在頁面内容被呈現之後再執行js代碼,可以把js外部檔案放在
<body>
标簽尾部。
注:如果在标簽中引入外部js檔案,而且還想在頁面内容呈現之後再下載下傳執行js代碼,可以在
<head>
标簽中增加
<script>
屬性,這個屬性的用途是表明js腳本在執行時不會影響頁面的構造,也就是說js腳本會被延遲到整個頁面都被解析完畢後再運作。即浏覽器會立即下載下傳js代碼檔案,但是延遲執行。
defer="defer"