- 作者:
- 發(fā)表時(shí)間:2010-04-07 09:29
- 來(lái)源:
近來(lái),隨著XHTML(可擴(kuò)展HTML)標(biāo)準(zhǔn)的出現(xiàn),標(biāo)簽也經(jīng)歷了一些改變。該標(biāo)簽不再用language特性,而用type特性聲明內(nèi)嵌代碼或要加入的外部文件的mime類型,JavaScript的mime類型是"text/javascript"。例如:
即使許多瀏覽器不完全支持XHTML,但大多數(shù)開發(fā)者現(xiàn)在都用type特性,而不用language特性,以提供更好的XHTML支持。省略language特性不會(huì)帶來(lái)任何問題,因?yàn)槿缜八?,所有瀏覽器都默認(rèn)的該屬性值為JavaScript。
XHTML的第二個(gè)改變是使用CDATA段。XML中的CDATA段用于聲明不應(yīng)被解析為標(biāo)簽的文本(XHTML也是如此),這樣就可以使用特殊字符,如小于(<)、大于(>)、和號(hào)(&)和雙引號(hào)("),而不必使用它們的字符實(shí)體??紤]下面的代碼:
這個(gè)函數(shù)相當(dāng)簡(jiǎn)單,它比較數(shù)字a和b,然后顯示消息說(shuō)明它們的關(guān)系。但是,在XHTML中,這段代碼是無(wú)效的,因?yàn)樗褂昧巳齻€(gè)特殊符號(hào),即小于、大于和雙引號(hào)。要修正這個(gè)問題,必須分別用這三個(gè)字符的XML實(shí)體<、>和"替換它們:
這段代碼存在兩個(gè)問題。首先,開發(fā)者不習(xí)慣用XML實(shí)體編寫代碼。這使代碼很難讀懂。其次,在JavaScript中,這種代碼實(shí)際上將視為有語(yǔ)法錯(cuò),因?yàn)榻忉尦绦虿恢繶ML實(shí)體的意思。用CDATA段即可以以常規(guī)形式(即易讀的語(yǔ)法)編寫JavaScript代碼。正式加入CDATA段的方法如下:
雖然這是正式方式,但還要記住,大多數(shù)瀏覽器都不完全支持XHTML,這就帶來(lái)主要問題,即這在JavaScript中是個(gè)語(yǔ)法錯(cuò)誤,因?yàn)榇蠖鄶?shù)瀏覽器還不認(rèn)識(shí)CDATA段。
當(dāng)前使用的解決方案模仿了“對(duì)舊瀏覽器隱藏”代碼的方法。使用單行的JavaScript注釋,可在不影響代碼語(yǔ)法的情況下嵌入CDATA段: