標籤:
JS代碼的位置 我們可以將JavaScript代碼放在html檔案中任何位置,但是我們一般放在網頁的head或者body部分。
放在<head>部分
最常用的方式是在頁面中head部分放置<script>元素,瀏覽器解析head部分就會執行這個代碼,然後才解析頁面的其餘部分。
放在<body>部分
JavaScript代碼在網頁讀取到該語句的時候就會執行。
? 注意 Javascript作為一種指令碼語言可以放在html頁面中任何位置,但是瀏覽器解釋html時是按先後順序的,所以前面的script就先被執行。
比如進行頁面顯示初始化的js必須放在head裡面,因為初始化都要求提前進行(如給頁面body設定css等);而如果是通過事件調用執行的function那麼對位置沒什麼要求的。
事件響應代碼塊的封裝★ 事件響應代碼的不同封裝其頁面響應效果也有所不同△ 測試 1 放在標籤<head>中,或緊接著標籤<body>的下方
<script>
/* document.onclick = function () {
alert("You have clicked in the document!");
};
var img = document.getElementById("mainImage");
img.onclick = function () {
alert("You have clicked on the picture!");
};*/
/* 若將document.onclick放在img onclick事件之前,那麼只會提示document的onclick */
/* 若將img onclick放在document.onclick事件之前,那麼無任何提示*/
</script>
△ 測試 2 放在內容標籤之後
<body>
<img src="images/image.jpg" id="mainImage">
document.onclick = function () {
alert("You have clicked in the document!");
};
var img = document.getElementById("mainImage");
img.onclick = function () {
alert("You have clicked on the picture!");
};
//此時document.onclick與img.onclick的順序不影響執行結果
</body>
推薦做法(正確的姿勢...) 將事件響應代碼封裝為函數,然後在window.onload中完成掛接工作。
<script>
function Demo() {
document.onclick = function () {
alert("You have clicked in the document!");
};
var img = document.getElementById("mainImage");
img.onclick = function () {
alert("You have clicked on the picture!");
};
}
window.onload = function () {
Demo();
}
</script>
這樣子,script的代碼塊無論在head中還是body中,或者是body的不同位置,最終的執行結果都是一樣的。
來自為知筆記(Wiz)
JS代碼的位置與事件響應代碼塊的封裝問題