«

»

5 月
07

網頁設計-HTML教程:腳本JS標記script詳解_18



無標題文件

網頁設計HTML教程:腳本JS標記script詳解

發佈者:SEO香港優化專家 – Web Design

網站設計

<script>標籤

script標籤有兩種用途:

  • 1. 在頁面中標識一塊腳本代碼
  • 2. 加載一個腳本文件

它要依賴於src屬性的存在。上面兩種情況都需要</script>閉合標籤。

script標籤可以包含下面的屬性:

src=”url”

src屬性是可選的。如果存在src屬性,它的值應是一個url(網址)表示的.js文件。當瀏覽器加載,編譯與執行文件時,頁面將停止裝載與處理。<script src="url">與</script>之間不應有任何內容(保持空白)。

如果沒有src屬性,<script>與</script>之間的文字可被編譯與執行。script不能包含序列

</

因為可能與</script>混淆。可以插入反斜線符號在<與/之間避免此問題。

</\

反斜線將被JavaScript編譯器忽略。

不要使用<!– //–>這種hack腳本。這種方法可以阻止第一代瀏覽器(Netscape 1和Mosaic)將腳本顯示成文字。已經有很長時間不需要這麼做了。<!– //–>是一個HTML註釋。註釋中的腳本將被忽略,不被編譯與執行。同樣,HTML註釋不包括–,因此腳本將忽略HTML錯誤。

language=”javascript”

這個屬性是不贊成使用的。它被用於選擇其它的程序語言或特殊版本的JavaScript。盡量避免使用。

type=”text/javascript”

這個屬性是可選的。自從Netscape 2所有瀏覽器默認的編程語言已經都是JavaScript了。在XHTML中,這個屬性是必須的。在HTML中最好不要使用此屬性。瀏覽器可以自行解決。

defer

這個屬性試圖改變組件在頁面中的加載時機。它不能被很好的支持,不要使用此屬性。

for=”name” event=”name”

這些屬性是微軟(Microsoft)的私有屬性,用於聲明事件句柄。這是不標準的。盡量避免使用。

放置(Placement)

<script src="url"></script>將阻礙頁面的其它組件下載,直到script腳本加載、編譯、執行完畢。因此越晚調用腳本越好,以便加載圖像和其它組件不被延時。 加載腳本將增加感覺中的與實際的頁面加載時間。因此通常最好把所有的<script src="url"></script>放置在</body>之前。一個頁面內的<script>在加載時沒有明顯的影響。

如果一個腳本定義了一些用於其它函數的函數與數據,那麼必須在用這些函數與數據之前完成定義。因此定義腳本後才可以使用腳本。

document.write

document.write提供了一種將字符串寫入HTML頁面的方法。有更好的方法這樣做,例如.innerHTML和.createElement或者HTML克隆樣式(HTML cloning patterns),用於避免使用document.write。

document.write強制性的依賴於加載時機。如果document.write在onload事件前被調用,它會在一個頁面中附加或插入文字。如果在onload事件後被調用,它將完全替換頁面,摧毀前面完成的所有內容。

document.write使腳本與標記混合起來,助長了壞的結構。清晰的結構盡少使腳本與標記混合使用。

腳本標籤駭客

令人驚訝的是src屬性不被同源策略(Same Origin Policy)約束。這意味著一個腳本元素可以產生於任何服務器並且加載腳本與執行腳本。如果腳本引發JSON編碼的數據傳送,這是很有用的。不幸的是沒有方法可以在執行前限制與檢查腳本。它同頁面的其它腳本一樣有權利運行。腳本能存取與使用自帶的小甜餅(cookies)。它可以存取原始服務器信息用於用戶的授權。它可以檢查DOM或JavaScript全局對像(global object),而且可以為世界上的任何地方發送信息。腳本駭客標籤(Script Tag Hack)是不安全的並且應該避免使用。

網頁寄存