網(wǎng)站首頁 前端文檔 正文
JS script標簽有哪些屬性:
-
charset
:可選。表示通過src屬性指定的代碼的字符集。由于大多數(shù)瀏覽器會忽略它的值因此這個屬性很少有人用。 -
defer
:可選。表示腳本可以延遲到文檔完全被解析和顯示之后再執(zhí)行。 -
language
:已廢棄。原來用于表示編寫代碼使用的腳本語言(如JavaScript、JavaScript1.2或VBScript
)。大多數(shù)瀏覽器會忽略這個屬性,因此也沒有必要再用了。 -
src
:可選。表示包含要執(zhí)行代碼的外部文件。 -
type
:必需。可以看成是language的替代屬性,表示編寫代碼使用的腳本語言的內(nèi)容類型(也稱為MIME類型)。雖然text/javascript
和text/ecmascript
都已經(jīng)不被推薦使用,但人們一直以來使用的都還是text/javascript
。實際上,服務端在傳送JavaScript
文件時使用的MIME
類型通常是application/x-javascript
,但在type中設置這個值卻可能導致腳本被忽略。另外,在非IE瀏覽器中還可以使用以下值:application/javascript
和application/ecmascript
。考慮到約定成俗和最大限度的瀏覽器兼容性,目前type屬性的值依舊還是text/javascript
。
使用script>元素的方式有兩種:直接在頁面中嵌入JavaScript
代碼和包含外部JavaScript
文件。
在使用script>元素嵌入JavaScript代碼時,只須為script>指定type屬性。然后,像下面這樣把JavaScript代碼直接放在元素內(nèi)部即可:
scripttype="text/javascript"> functionsayHi(){ alert("Hi!"); } /script>
包含在script>
元素內(nèi)部的JavaScript
代碼將被從上至下依次解釋。就拿前面這個例子來說,解釋器會解釋到一個函數(shù)的定義,然后將該定義保存在自己的環(huán)境當中。在解釋器對script>
元素內(nèi)部的所有代碼求值完畢以前,頁面中的其余內(nèi)容都不會被瀏覽器加載或顯示。
在使用script>
嵌入JavaScript
代碼時,記住不要在代碼中的任何地方出現(xiàn)"/script>"
字符串。
例如,瀏覽器在加載下面所示的代碼時就會產(chǎn)生一個錯誤:
scripttype="text/javascript"> functionsayScript(){ alert('/script>'); } /scrìpt>
因為按照解析嵌入式代碼的規(guī)則,當瀏覽器遇到字符串"/script>
"時,就會認為那是結束的/script>
標簽。通過把這個字符串分隔為兩部分可以解決這個問題,
例如:
JSscript>標簽有哪些屬性:
functionsayScript(){ alert("/scr"+"ipt>"); }
像這樣分成兩部分來寫就不會造成瀏覽器的誤解,因而也就不會導致錯誤了。
如果要通過script>
元素來包含外部JavaScript
文件,那么src屬性就是必需的。這個屬性的值是一個指向外部JavaScript文件的鏈接,
例如:
scripttype="text/javascript"src="example.js">/script>
在這個例子中,外部文件example.js
將被加載到當前頁面中。外部文件只須包含通常要放在開始的script>和結束的/script>之間的那些JavaScript代碼即可。與解析嵌入式JavaScript
代碼一樣,在解析外部JavaScript文件(包括下裁該文件)時,頁面的處理也會暫時停止。如果是在XHTML文檔中,也可以省略前面示例代碼中結束的/script>標簽,
例如:
scripttype="text/javascript"src="example.js"/>
但是,不能在HTML文檔使用這種語法。原因是這種語法不符合HTML規(guī)范,而且也得不到某些瀏覽器一一尤其是IE一一的正確解析。
按照慣例,外部JavaScript文件帶有js擴展名。但這個擴展名不是必需的,因為瀏覽器不會檢查包含JavaScript的文件的擴展名。這樣一來,使用JSP、PHP或其他服務器端語言動態(tài)生成JavaScript代碼也就成為了可能。
需要注意的是,帶有src屬性的script>元素不應該在script>和/script>標簽之間再包含額外的JavaScript代碼。
另外,通過script>元素的src屬性還可以包含來自外部域的JavaScript文件。這一點既使script>元素倍顯強大,又讓它備受爭議。在這一點上,script>與img>元索非常相似,即它的src屬性可以是指向當前HTML頁面所在域之外的某個域中的URL,例如:
scripttype="text/javascript"src="http://www.somewhere.com/afile.js">/script>
這樣,位于外部域中的代碼也會被加載和解析,就像這些代碼位于加載它們的頁面中一樣。利用這一點就可以在必要時通過不同的域來提供JavaScript文件。不過,在訪問自己不能控制的服務器上的JavaScript文件時則要多加小心。如果不幸遇到了懷有惡意的程序員,那他們隨時都可能替換該文件中的代碼。因此,如果想包含來自不同域的代碼,要么你是那個域的所有者,要么那個域的所有者值得信賴。
無論如何包含代碼,瀏覽器都會按照script>元素在頁面中出現(xiàn)的先后順序對它們依次進行解析。換句話說,在第一個script>元素包含的代碼解析完成后,第二個script>包含的代碼才會被解析,然后才是第三個、第四個。
原文鏈接:https://www.xuebuyuan.com/3295271.html
相關推薦
- 2022-07-28 C++超詳細講解函數(shù)重載_C 語言
- 2022-03-21 C++二維數(shù)組螺旋加密信息_C 語言
- 2022-09-22 transition transform屬性造成文字抖動及模糊的解決方法
- 2022-09-09 使用PyTorch實現(xiàn)隨機搜索策略_python
- 2023-11-11 微信 小程序 在電腦PC端無法加載的解決辦法。電腦微信小程序打不開是怎么回事?電腦微信小程序不能打開
- 2022-12-07 python?yield迭代器詳解_python
- 2022-06-23 android中的adb命令學習_Android
- 2021-12-19 Linux下wget命令詳細介紹_Linux
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結構-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支