js放到head中失效的原因與解決方法
1.今天寫js碰到一個(gè)奇怪的問(wèn)題,寫好的js放到body里面執(zhí)行,但是放到head中沒(méi)有任何效果,為什么導(dǎo)致這種原因呢?
看失效代碼:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<style type="text/css">
.login{width:40px;height:25px;line-height:25px;background-color:#4E74A5;margin-top:30px;text-align:center;color:#FFF;}
</style>
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script type="text/javascript">
$(".login").click(function(){
alert(1);
});
</script>
</head>
<body>
<input type="text" class="pass" />
<div id="enter" class="login"> 登錄</div>
</body>
</html>
2.解決辦法:把js代碼放到body中,或者利用 window.onload = function(){} 代碼包裹,文檔加載之后再執(zhí)行,以后不建議放到head中。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<style type="text/css">
.login{width:40px;height:25px;line-height:25px;background-color:#4E74A5;margin-top:30px;text-align:center;color:#FFF;}
</style>
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script type="text/javascript">
window.onload = function(){
$(".login").click(function(){
alert(1);
});
}
</script>
</head>
<body>
<input type="text" class="pass" />
<div id="enter" class="login"> 登錄</div>
</body>
</html>
3.原因:
因?yàn)槲臋n還沒(méi)加載,就讀了js,js就不起作用了想在head里用的話,用window.onload = function(){//這里包裹你的代碼}
js可以分為外部的和內(nèi)部的,外部的js一般放到head內(nèi)。內(nèi)部的js也叫本頁(yè)面的JS腳本,內(nèi)部的js一般放到body內(nèi),這樣做的目的有很多:
1.不阻塞頁(yè)面的加載(事實(shí)上js會(huì)被緩存)。
2.可以直接在js里操作dom,這時(shí)候dom是準(zhǔn)備好的,即保證js運(yùn)行時(shí)dom是存在的。
3.建議的方式是放在頁(yè)面底部,監(jiān)聽(tīng)window.onload 或 readystate 來(lái)觸發(fā)js。
4.延伸:
head內(nèi)的js會(huì)阻塞頁(yè)面的傳輸和頁(yè)面的渲染。head 內(nèi)的 JavaScript 需要執(zhí)行結(jié)束才開(kāi)始渲染 body,所以盡量不要將 JS 文件放在 head 內(nèi)??梢赃x擇在 document 完成時(shí),或者特定區(qū)塊后引入和執(zhí)行 JavaScript。head 內(nèi)的 JavaScript 需要執(zhí)行結(jié)束才開(kāi)始渲染 body,所以盡量不要將 JS 文件放在 head 內(nèi)??梢赃x擇在 document 完成時(shí),或者特定區(qū)塊后引入和執(zhí)行 JavaScript。
所以在head內(nèi)的js一般要先執(zhí)行完后,才開(kāi)始渲染body頁(yè)面。為了避免head引入的js腳本阻塞流浪器中主解析引擎對(duì)dom的解析工作,對(duì)dom的渲染,一般原則是,樣式在前面,dom文檔,腳本在最后面。遵循先解析再渲染再執(zhí)行script這個(gè)順序。
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
- JS實(shí)現(xiàn)發(fā)送短信驗(yàn)證后按鈕倒計(jì)時(shí)功能(防止刷新倒計(jì)時(shí)失效)
- JS失效 提示HTML1114: (UNICODE 字節(jié)順序標(biāo)記)的代碼頁(yè) utf-8 覆蓋(META 標(biāo)記)的沖突的代碼頁(yè) utf-8
- 使用jQuery的load方法設(shè)計(jì)動(dòng)態(tài)加載及解決被加載頁(yè)面js失效問(wèn)題
- JS出現(xiàn)失效的情況總結(jié)
- 使用微信內(nèi)嵌H5網(wǎng)頁(yè)解決JS倒計(jì)時(shí)失效問(wèn)題
- jsp 網(wǎng)站引入外部css或者js失效問(wèn)題解決
- js 開(kāi)發(fā)之a(chǎn)utocomplete="off"在chrom中失效的解決辦法
相關(guān)文章
JS實(shí)現(xiàn)Tab欄切換的兩種方式案例詳解
這篇文章主要介紹了JS實(shí)現(xiàn)Tab欄切換的兩種方式,一種是面向過(guò)程的寫法,一種是面向?qū)ο蟮膶懛?,本文給大家分享詳細(xì)案例代碼,需要的朋友可以參考下2022-08-08
使用bootstrapValidator插件進(jìn)行動(dòng)態(tài)添加表單元素并校驗(yàn)
動(dòng)態(tài)添加表單元素,并調(diào)用bootstrapValidator的方法為表單添加校驗(yàn)規(guī)則,調(diào)用addField()方法實(shí)現(xiàn)功能。下面通過(guò)本文看下具體實(shí)現(xiàn)方法吧2016-09-09
flash javascript之間的通訊方法小結(jié)
不用getURL和fsCommand方法個(gè)國(guó)外的通信方法,值得一看2008-12-12
前端實(shí)現(xiàn)json動(dòng)畫詳細(xì)過(guò)程(附帶示例)
這篇文章主要介紹了如何使用Lottie制作動(dòng)畫,包括創(chuàng)建動(dòng)畫文件.json、實(shí)現(xiàn)效果、在Git倉(cāng)庫(kù)中保存和共享、運(yùn)行動(dòng)畫以及在動(dòng)畫天堂下載和顯示JSON動(dòng)畫,文中通過(guò)代碼及圖文介紹的非常詳細(xì),需要的朋友可以參考下2025-02-02
微信小程序 點(diǎn)擊控件后選中其它反選實(shí)例詳解
這篇文章主要介紹了微信小程序 點(diǎn)擊控件后選中其它反選實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-02-02
JS實(shí)現(xiàn)的Unicode編碼轉(zhuǎn)換操作示例
這篇文章主要介紹了JS實(shí)現(xiàn)的Unicode編碼轉(zhuǎn)換操作,結(jié)合完整實(shí)例形式分析了javascript實(shí)現(xiàn)Unicode編碼轉(zhuǎn)換的具體操作技巧,需要的朋友可以參考下2017-04-04
微信小程序MUI側(cè)滑導(dǎo)航菜單示例(Popup彈出式,左側(cè)滑動(dòng),右側(cè)不動(dòng))
這篇文章主要介紹了微信小程序MUI側(cè)滑導(dǎo)航菜單,結(jié)合實(shí)例形式分析了微信小程序Popup彈出式,左側(cè)滑動(dòng),右側(cè)不動(dòng)菜單功能相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下2019-01-01

