當(dāng)開發(fā)人員可以在不同的瀏覽器中使用相同的標(biāo)記和代碼時(shí)可以得到相同的結(jié)果,這會(huì)讓W(xué)eb變得更好。IE10在這方面的取得進(jìn)展,完全支持HTML5的標(biāo)準(zhǔn)化解析規(guī)則。HTML 5的重要變化之一便是引入了針對(duì)非標(biāo)準(zhǔn)HTML特別是錯(cuò)誤格式HTML的標(biāo)準(zhǔn)化解析規(guī)則。瀏覽器在遇到存在錯(cuò)誤的HTML如缺少結(jié)束標(biāo)記時(shí)通常表現(xiàn)得很寬松。這種大度被廣受贊譽(yù),因?yàn)橄啾葘?duì)手XHTML來說,HTML在此種情況下會(huì)繼續(xù)正常處理。
HTML最新待定標(biāo)準(zhǔn)提到:
本規(guī)范定了HTML文檔的解析規(guī)則,無論它們語法是否錯(cuò)誤。解析算法中的某些地方被視為解析錯(cuò)誤。針對(duì)解析錯(cuò)誤的處理明確定義:用戶代理(瀏覽器)在遇到這些問題時(shí)要么按照如下描述處理,要么必須在遇到第一個(gè)不想遵循如下處理規(guī)則的錯(cuò)誤時(shí)終止處理。
下面的示例說明某些情況下的改進(jìn):
互操作的innerHTML
這些改進(jìn)也適用于innerHTML。代碼模式就像現(xiàn)在這些工作,你會(huì)期待IE10:
var select = document.createElement(”select”);
select.innerHTML = “<option>one</option><option>two</option>”;
var table = document.createElement(”table”);
table.innerHTML = “<tr><td>one</td><td>two</td></tr>”;
更好的錯(cuò)誤報(bào)告
HTML5確保標(biāo)記將始終解析。它還是一個(gè)幫助開發(fā)人員一開始便避免無效標(biāo)記的方法。編寫有效的標(biāo)記可以使您的網(wǎng)站按照期望的方式工作,并更好的與舊版瀏覽器兼容。
為了在這方面幫助開發(fā)人員,IE10現(xiàn)在可以通過F12開發(fā)人員工具報(bào)告HTML解析錯(cuò)誤。
刪除舊特性
因?yàn)槟承┰谠缙贗E瀏覽器版本中的特性已不符合HTML5解析,我們已經(jīng)將他們從IE10模式中刪除。這些過時(shí)的特性在傳統(tǒng)模式下仍然有效。
1、條件注釋
<!–[if IE]>
在IE10和其他的瀏覽器中,此內(nèi)容被忽略。
在舊版本的IE瀏覽器中,它呈現(xiàn)為頁(yè)面的一部分。
<![endif]–>
這意味著仍然可以使用條件注釋,但將只針對(duì)舊版本的IE瀏覽器 。如果你需要區(qū)分較新的瀏覽器,請(qǐng)使用功能檢測(cè)。
2、元素行為
<html xmlns:my>
<?import namespace=”my” implementation=”my.htc”>
<my:element>
在IE10和其他的瀏覽器中,這解析為未知的元素
在舊版本的IE瀏覽器中,它綁定到 “my.htc”
</my:element>
</html>
3、XML Data Islands
<xml>
在IE10和其他的瀏覽器中,這解析為<b>HTML</b>
在舊版本的IE瀏覽器中,它解析為XML
</xml>