向頁面中插入JS的主要方法,就是使用<script>元素。它現(xiàn)在使用的有5個屬性。
1.asyns:可選。表示應該立即下載腳本,但不應妨礙頁面中的其他操作。
2.charset:可選。表示通過src屬性制定的代碼的字符集。
3.defer:可選。表示腳本可以延遲到文檔完全被解析和顯示之后再執(zhí)行。只對外部腳本文件有效。
4.src:可選。表示包含要執(zhí)行代碼的外部文件。
5.type:可選。表示編寫代碼使用的腳本語言的內容類型。
一、使用<script>的方法
1.直接在頁面中嵌入js代碼
2.包含外部js文件
使用第一種方法時嵌入時,只需要為<script>指定type屬性,然后像下面這樣,直接把js代碼放在元素內部就可以了。
<script type="text/javascript">
function sayHi(){
alert('hi')
}
sayHi()
</script>
包含在<script>元素內部的js代碼將被從上往下依次解釋,在解釋器對<script>元素內部的所有代碼求值完畢以前,頁面中的其余內容都不會被瀏覽器加載或顯示。
同時,在使用這種方法嵌入js代碼時,不要在代碼中任何地方出"</script>"字符串。如:
<script type="text/javascript">
function sayHi(){
alert("</script>")
}
sayHi()
</script>
這樣會報錯的。因為按照嵌入時代碼的規(guī)則,當瀏覽器遇到字符串"</script>"時,就會認為那是結束的標簽,當然也有解決辦法,使用轉義字符"/"就可以解決。
<script type="text/javascript">
function sayHi(){
alert("<\/script>")
}
sayHi()
</script>
這樣程序就不會報錯,正常執(zhí)行。
當然,盡量不要這樣寫。你顯示什么不好非要費勁顯示這個給自己找事兒?
使用第二種方法通過<script>元素來包含外部文件,src屬性是必須的。這個屬性的值是一個指向外部的js文件的鏈接。如:
<srcipt type="text/javascript" src="example.js"></srcipt>
需要注意的是,帶有src 屬性的<script>元素不應該在標簽之間再包含額外的js代碼,如果包含了代碼,只會下載并執(zhí)行外部腳本文件,嵌入的代碼會被忽略。
同時,通過src屬性還可包含來自 外部域 (跨域)的JS文件,和<img>標簽一樣,src屬性可以直接指向當前HTML頁面域之外的某個域中的完整URL,例如:
<srcipt type="text/javascript" src="https://www.baidu.com/"></srcipt>
這樣外部域的代碼也會被加載和解析。利用這一點就可以在必要時通過不同的域來提供JS文件。
二、<script>標簽的位置:
傳統(tǒng)做法是放在<head>中,但是代碼量較多時,會導致瀏覽器呈現(xiàn)頁面時出現(xiàn)明顯延遲,期間串口一片空白,造成用戶體驗感極差。
解決辦法很簡單,就是把它放到<body>標簽下面......