淺說(shuō)XHTML中CDATA_XHTML教程
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!
近來(lái),隨著XHTML(可擴(kuò)展HTML)標(biāo)準(zhǔn)的出現(xiàn),<script/>標(biāo)簽也經(jīng)歷了一些改變。該標(biāo)簽不再用language特性,而用type特性聲明內(nèi)嵌代碼或要加入的外部文件的mime類型,JavaScript的mime類型是"text/javascript"。例如:
即使許多瀏覽器不完全支持XHTML,但大多數(shù)開(kāi)發(fā)者現(xiàn)在都用type特性,而不用language特性,以提供更好的XHTML支持。省略language特性不會(huì)帶來(lái)任何問(wèn)題,因?yàn)槿缜八�,所有瀏覽器都默認(rèn)<script/>的該屬性值為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è)問(wèn)題,必須分別用這三個(gè)字符的XML實(shí)體<、>和"替換它們:
這段代碼存在兩個(gè)問(wèn)題。首先,開(kāi)發(fā)者不習(xí)慣用XML實(shí)體編寫(xiě)代碼。這使代碼很難讀懂。其次,在JavaScript中,這種代碼實(shí)際上將視為有語(yǔ)法錯(cuò),因?yàn)榻忉尦绦虿恢繶ML實(shí)體的意思。用CDATA段即可以以常規(guī)形式(即易讀的語(yǔ)法)編寫(xiě)JavaScript代碼。正式加入CDATA段的方法如下:
雖然這是正式方式,但還要記住,大多數(shù)瀏覽器都不完全支持XHTML,這就帶來(lái)主要問(wèn)題,即這在JavaScript中是個(gè)語(yǔ)法錯(cuò)誤,因?yàn)榇蠖鄶?shù)瀏覽器還不熟悉CDATA段。
當(dāng)前使用的解決方案模擬了“對(duì)舊瀏覽器隱藏”代碼的方法。使用單行的JavaScript注釋,可在不影響代碼語(yǔ)法的情況下嵌入CDATA段:
示例代碼 [m.hl5o.cn]
<html>
<head>
<title>Title of Page</title>
<script type=”text/javascript”>
var i = 0;
</script>
<script type=”text/javascript” src=”../scripts/external.js”></script>
</head>
<body>
<!-- body goes here -->
</body>
</html>
<head>
<title>Title of Page</title>
<script type=”text/javascript”>
var i = 0;
</script>
<script type=”text/javascript” src=”../scripts/external.js”></script>
</head>
<body>
<!-- body goes here -->
</body>
</html>
即使許多瀏覽器不完全支持XHTML,但大多數(shù)開(kāi)發(fā)者現(xiàn)在都用type特性,而不用language特性,以提供更好的XHTML支持。省略language特性不會(huì)帶來(lái)任何問(wèn)題,因?yàn)槿缜八�,所有瀏覽器都默認(rèn)<script/>的該屬性值為JavaScript。
XHTML的第二個(gè)改變是使用CDATA段。XML中的CDATA段用于聲明不應(yīng)被解析為標(biāo)簽的文本(XHTML也是如此),這樣就可以使用非凡字符,如小于(<)、大于(>)、和號(hào)(&)和雙引號(hào)("),而不必使用它們的字符實(shí)體�?紤]下面的代碼:
示例代碼 [m.hl5o.cn]
<SCRIPT type=”text/javascript”>
function compare(a, b) {
if (a < b) {
alert(“A is less than B”);
} else if (a > b) {
alert(“A is greater than B”);
} else {
alert(“A is equal to B”);
}
}
</SCRIPT>
function compare(a, b) {
if (a < b) {
alert(“A is less than B”);
} else if (a > b) {
alert(“A is greater than B”);
} else {
alert(“A is equal to B”);
}
}
</SCRIPT>
這個(gè)函數(shù)相當(dāng)簡(jiǎn)單,它比較數(shù)字a和b,然后顯示消息說(shuō)明它們的關(guān)系。但是,在XHTML中,這段代碼是無(wú)效的,因?yàn)樗褂昧巳齻(gè)非凡符號(hào),即小于、大于和雙引號(hào)。要修正這個(gè)問(wèn)題,必須分別用這三個(gè)字符的XML實(shí)體<、>和"替換它們:
示例代碼 [m.hl5o.cn]
<SCRIPT type=”text/javascript”>
function compare(a, b) {
if (a < b) {
alert("A is less than B");
} else if (a > b) {
131
JavaScript in the Browser
alert("A is greater than B");
} else {
alert("A is equal to B");
}
}
</SCRIPT>
function compare(a, b) {
if (a < b) {
alert("A is less than B");
} else if (a > b) {
131
JavaScript in the Browser
alert("A is greater than B");
} else {
alert("A is equal to B");
}
}
</SCRIPT>
這段代碼存在兩個(gè)問(wèn)題。首先,開(kāi)發(fā)者不習(xí)慣用XML實(shí)體編寫(xiě)代碼。這使代碼很難讀懂。其次,在JavaScript中,這種代碼實(shí)際上將視為有語(yǔ)法錯(cuò),因?yàn)榻忉尦绦虿恢繶ML實(shí)體的意思。用CDATA段即可以以常規(guī)形式(即易讀的語(yǔ)法)編寫(xiě)JavaScript代碼。正式加入CDATA段的方法如下:
示例代碼 [m.hl5o.cn]
<SCRIPT type=”text/javascript”><![CDATA[
function compare(a, b) {
if (a < b) {
alert(“A is less than B”);
} else if (a > b) {
alert(“A is greater than B”);
} else {
alert(“A is equal to B”);
}
}
]]></SCRIPT>
function compare(a, b) {
if (a < b) {
alert(“A is less than B”);
} else if (a > b) {
alert(“A is greater than B”);
} else {
alert(“A is equal to B”);
}
}
]]></SCRIPT>
雖然這是正式方式,但還要記住,大多數(shù)瀏覽器都不完全支持XHTML,這就帶來(lái)主要問(wèn)題,即這在JavaScript中是個(gè)語(yǔ)法錯(cuò)誤,因?yàn)榇蠖鄶?shù)瀏覽器還不熟悉CDATA段。
當(dāng)前使用的解決方案模擬了“對(duì)舊瀏覽器隱藏”代碼的方法。使用單行的JavaScript注釋,可在不影響代碼語(yǔ)法的情況下嵌入CDATA段:
示例代碼 [m.hl5o.cn]
<SCRIPT type=”text/javascript”>
//<![CDATA[
function compare(a, b) {
if (a < b) {
alert(“A is less than B”);
} else if (a > b) {
alert(“A is greater than B”);
} else {
alert(“A is equal to B”);
}
}
//]]>
</SCRIPT>
//<![CDATA[
function compare(a, b) {
if (a < b) {
alert(“A is less than B”);
} else if (a > b) {
alert(“A is greater than B”);
} else {
alert(“A is equal to B”);
}
}
//]]>
</SCRIPT>
相關(guān)XHTML教程:
- HTML5 INPUT placeholder及兼容性處理
- HTML表單里的Label標(biāo)簽
- 淺析HTML與javascript中常用編碼
- CSS網(wǎng)頁(yè)布局中必須要了解的幾個(gè)XHTML標(biāo)簽
- title和alt 標(biāo)簽介紹及其異同
- 淺析HTML標(biāo)簽strong和em的區(qū)別
- 說(shuō)說(shuō)XHTML中的alt屬性和title屬性
- Semantics語(yǔ)義是Html Xhtml是否真正符合標(biāo)準(zhǔn)的重要部分
- 九個(gè)W3C XHTML1.0及CSS標(biāo)準(zhǔn)認(rèn)證需要注意的問(wèn)題
- 請(qǐng)注意頁(yè)面head區(qū)域的編碼是不是規(guī)范
- HTML validate - 驗(yàn)證HTML代碼穿越多重瀏覽器標(biāo)準(zhǔn)
- XHTML具有語(yǔ)義的標(biāo)簽:有關(guān)H1位置的討論
XHTML教程Rss訂閱Div+Css教程搜索
XHTML教程推薦
- HTML表格標(biāo)記詳細(xì)講解(適合初學(xué)者)
- DIVCSS網(wǎng)頁(yè)布局中常用的列表元素ulollidldtdd釋義
- HTML教程,簡(jiǎn)單學(xué)習(xí)HTML語(yǔ)言
- DIV CSS布局基礎(chǔ):HTML標(biāo)記(三)
- HTML高級(jí)教程表格
- 網(wǎng)頁(yè)制作解惑:圖象文件的路徑
- XHTML入門(mén)學(xué)習(xí)教程:XHTML超級(jí)鏈接
- HTML網(wǎng)頁(yè)圖片標(biāo)記
- XHTML教程:針對(duì)初學(xué)者的XHTML基礎(chǔ)
- HTML初級(jí)教程簡(jiǎn)介及入門(mén)
猜你也喜歡看這些
- 克服CSS學(xué)習(xí)障礙 CSS中英文對(duì)照字典
- HTML與CSS入門(mén)經(jīng)典OliverD.MorrisonM.第7版上架
- 實(shí)用CSS教程:從基礎(chǔ)開(kāi)始(三)
- CSS中級(jí)教程CSS偽類
- CSS教程9、CSS的GroupingandNesting分組和嵌套[翻譯Htmldog]
- CSS selector:class 和 id 都可以使“單一選擇符”有不同的樣式
- Web標(biāo)準(zhǔn):結(jié)構(gòu),表現(xiàn)和行為分離
- CSS初學(xué)者應(yīng)該保持的一種心態(tài)
- 請(qǐng)注意閉合浮動(dòng)元素讓我們的CSS代碼更規(guī)范
- 解決IE和Mozilla的布局差別的利器:“!important”
- 相關(guān)鏈接:
- 教程說(shuō)明:
XHTML教程-淺說(shuō)XHTML中CDATA
。