為什么要把對addEvent函數(shù)的調(diào)用寫在window.onload=function(){}里面
為什么要把addEvent(login_btn,'click',showLogin);和addEvent(close,'click',hideLogin);寫在window.onload=function(){}里面,寫在外面不行嗎?如果可以,要怎樣寫呢?
為什么要把addEvent(login_btn,'click',showLogin);和addEvent(close,'click',hideLogin);寫在window.onload=function(){}里面,寫在外面不行嗎?如果可以,要怎樣寫呢?
2016-03-16
舉報
2016-04-05
我也是想問這個問題,開始我想的是可能沒有讀取到body下面的id,所以不行,因為window.onload是頁面加載完了才開始執(zhí)行js代碼,但是后來我把js代碼寫在body最下面,把addEvent寫在外面還是不行...哎我也在到處求問
2016-03-16
通常情況下,js寫在文檔末尾,即</body>后面,因為js的加載會使靜態(tài)頁面加載中斷,比如js加載中部,會只出現(xiàn)js之前的靜態(tài)頁面,影響頁面展示,帶來不好的用戶瀏覽體驗,同理,寫在前面或者頭部,會加載js而不加載html,使得用戶看到了長達數(shù)秒的空白的頁面(一般網(wǎng)路狀況下和一般電腦配置下),所以一般寫在末尾,但如果要寫在頭部也是也是可以的,需要加一句window.onload,這句話的意思是在頁面加載完成后加載js,效果等同于將js放在末尾。明白了嗎?
2016-03-16
不建議這么寫,可能會出問題。
瀏覽器在解析html代碼時是從上向下依次解析的。如果js代碼在body標簽之前和沒有使用onload的情況下,則document.getElementById("xxx");這句代碼可能會因為id="xxx"的元素節(jié)點還沒有解析出來就被獲取。但實際上是獲取不到的。
而onload的意思就是說先讓其它html代碼解析出來,最后解析onload中的代碼。
2016-03-16
不建議這么寫,可能會出問題。
因為瀏覽器在解析html代碼的時候是從上倒下依次解析的。如果js代碼在沒有onload并且在body標簽之前的情況下解析時;那么會出現(xiàn)一個問題:document.getElementById("XXX");這句代碼中的id=“XXX”的元素節(jié)點還沒有被解析出來,你就直接獲取了。這種情況可能會出現(xiàn)bug