亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么要把對addEvent函數的調用寫在window.onload=function(){}里面

為什么要把addEvent(login_btn,'click',showLogin);和addEvent(close,'click',hideLogin);寫在window.onload=function(){}里面,寫在外面不行嗎?如果可以,要怎樣寫呢?

正在回答

4 回答

我也是想問這個問題,開始我想的是可能沒有讀取到body下面的id,所以不行,因為window.onload是頁面加載完了才開始執行js代碼,但是后來我把js代碼寫在body最下面,把addEvent寫在外面還是不行...哎我也在到處求問

0 回復 有任何疑惑可以回復我~
#1

隨性隨意

就是因為會出現一些莫名奇妙的問題,所以建議還是寫在onload里面。你可以找一些書,看看有沒有什么解釋。
2016-04-05 回復 有任何疑惑可以回復我~

通常情況下,js寫在文檔末尾,即</body>后面,因為js的加載會使靜態頁面加載中斷,比如js加載中部,會只出現js之前的靜態頁面,影響頁面展示,帶來不好的用戶瀏覽體驗,同理,寫在前面或者頭部,會加載js而不加載html,使得用戶看到了長達數秒的空白的頁面(一般網路狀況下和一般電腦配置下),所以一般寫在末尾,但如果要寫在頭部也是也是可以的,需要加一句window.onload,這句話的意思是在頁面加載完成后加載js,效果等同于將js放在末尾。明白了嗎?

0 回復 有任何疑惑可以回復我~

不建議這么寫,可能會出問題。

瀏覽器在解析html代碼時是從上向下依次解析的。如果js代碼在body標簽之前沒有使用onload的情況下,則document.getElementById("xxx");這句代碼可能會因為id="xxx"的元素節點還沒有解析出來就被獲取但實際上是獲取不到的。

而onload的意思就是說先讓其它html代碼解析出來,最后解析onload中的代碼。

0 回復 有任何疑惑可以回復我~

不建議這么寫,可能會出問題。

因為瀏覽器在解析html代碼的時候是從上倒下依次解析的。如果js代碼在沒有onload并且在body標簽之前的情況下解析時;那么會出現一個問題:document.getElementById("XXX");這句代碼中的id=“XXX”的元素節點還沒有被解析出來,你就直接獲取了。這種情況可能會出現bug

0 回復 有任何疑惑可以回復我~
#1

Lshah

但是放在body最下面也還是錯的
2016-04-05 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么要把對addEvent函數的調用寫在window.onload=function(){}里面

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號