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