1. 程式人生 > >20181212——第二章在HTML中使用javascript

20181212——第二章在HTML中使用javascript

在html插入Javascript的主要方法,就是使用script元素

另外,通過<script>元素的 src 屬性還可以包含來自外部域的 JavaScript 檔案。這一點既讓
<script>元素倍顯強大,又讓它備受爭議。在這一點上,<script>與<img>元素非常相似,即它的 src
屬性可以是指向當前 HTML 頁面所在域之外的某個域中的完整 URL,例如:
<script type="text/javascript" src="http://www.somewhere.com/afile.js"></script> 
這樣,位於外部域中的程式碼也會被載入和解析,就像這些程式碼位於載入它們的頁面中一樣。利用這
一點就可以在必要時通過不同的域來提供 JavaScript 檔案。不過,在訪問自己不能控制的伺服器上的
JavaScript 檔案時則要多加小心。如果不幸遇到了懷有惡意的程式設計師,那他們隨時都可能替換該檔案中
的程式碼。因此,如果想包含來自不同域的程式碼,則要麼你是那個域的所有者,要麼那個域的所有者值得
信賴。

小結

把 JavaScript 插入到 HTML 頁面中要使用<script>元素。使用這個元素可以把 JavaScript 嵌入到
HTML 頁面中,讓指令碼與標記混合在一起;也可以包含外部的 JavaScript 檔案。而我們需要注意的地方有:
 在包含外部 JavaScript 檔案時,必須將 src 屬性設定為指向相應檔案的 URL。而這個檔案既可
以是與包含它的頁面位於同一個伺服器上的檔案,也可以是其他任何域中的檔案。
 所有<script>元素都會按照它們在頁面中出現的先後順序依次被解析。在不使用 defer 和
async 屬性的情況下,只有在解析完前面<script>元素中的程式碼之後,才會開始解析後面
<script>元素中的程式碼。
 由於瀏覽器會先解析完不使用 defer 屬性的<script>元素中的程式碼,然後再解析後面的內容,
所以一般應該把<script>元素放在頁面最後,即主要內容後面,</body>標籤前面。
 使用 defer 屬性可以讓指令碼在文件完全呈現之後再執行。延遲指令碼總是按照指定它們的順序執行。
 使用 async 屬性可以表示當前指令碼不必等待其他指令碼,也不必阻塞文件呈現。不能保證非同步腳
本按照它們在頁面中出現的順序執行。
另外,使用<noscript>元素可以指定在不支援指令碼的瀏覽器中顯示的替代內容。但在啟用了指令碼
的情況下,瀏覽器不會顯示<noscript>元素中的任何內容。