10.在mf中沒有 parentElement parement.children 而用parentNode parentNode.childNodes childNodes的下標(biāo)的含義在IE和MF中不同,MF使用DOM規(guī)范,childNodes中會(huì)插入空白文本節(jié)點(diǎn)。 一般可以通過node.getElementsByTagName()來回避這個(gè)問題。 當(dāng)html中節(jié)點(diǎn)缺失時(shí),IE和MF對(duì)parentNode的解釋不同,例如
<form> <table> <input/> </table> </form>
MF中input.parentNode的值為form, 而IE中input.parentNode的值為空節(jié)點(diǎn)
MF中節(jié)點(diǎn)沒有removeNode方法,必須使用如下方法 node.parentNode.removeChild(node)
11.const 問題
現(xiàn)有問題: 在 IE 中不能使用 const 關(guān)鍵字。如 const constVar = 32; 在IE中這是語(yǔ)法錯(cuò)誤。
解決方法: 不使用 const ,以 var 代替。
12. body 對(duì)象
MF的body在body標(biāo)簽沒有被瀏覽器完全讀入之前就存在,而IE則必須在body完全被讀入之后才存在
13. url encoding在js中如果書寫url就直接寫&不要寫&例如var url = 'xx.jsp?objectName=xx&objectEvent=xxx'; frm.action = url那么很有可能url不會(huì)被正常顯示以至于參數(shù)沒有正確的傳到服務(wù)器 一般會(huì)服務(wù)器報(bào)錯(cuò)參數(shù)沒有找到 當(dāng)然如果是在tpl中例外,因?yàn)閠pl中符合xml規(guī)范,要求&書寫為& 一般MF無法識(shí)別js中的&
14. nodeName 和 tagName 問題
現(xiàn)有問題: 在MF中,所有節(jié)點(diǎn)均有 nodeName 值,但 textNode 沒有 tagName 值。在 IE 中,nodeName 的使用好象 有問題(具體情況沒有測(cè)試,但我的IE已經(jīng)死了好幾次)。
解決方法: 使用 tagName,但應(yīng)檢測(cè)其是否為空。
15. 元素屬性
IE下 input.type屬性為只讀,但是MF下可以修改
16. document.getElementsByName() 和 document.all[name] 的問題
現(xiàn)有問題: 在 IE 中,getElementsByName()、document.all[name] 均不能用來取得 div 元素(是否還有其它不能取的元素還不知道)。
17. DOM 數(shù)據(jù)島的問題
現(xiàn)有問題: 在IE中, <xml>標(biāo)簽具有特殊意義, 可以內(nèi)含XML DOM, 并能實(shí)現(xiàn)與HTML組件的數(shù)據(jù) 綁定. 在MF中,<xml>則僅僅是一個(gè)未知的標(biāo)記而已. 另外, 對(duì) IE 來說, <xml>實(shí)際意味著這里是一個(gè)ActiveX對(duì)象, 但它卻掛在HTML本 身的DOM樹下作為一個(gè)節(jié)點(diǎn), 因而會(huì)對(duì)DOM樹的遍歷造成嚴(yán)重影響.
解決方法: IE的數(shù)據(jù)綁定機(jī)制是可以用JS來模擬的, 但是太麻煩, 建議不使用數(shù)據(jù)綁定機(jī)制或者 尋找實(shí)現(xiàn)這種模擬的庫(kù)來做. 我們只討論如何實(shí)現(xiàn)DOM的兼容. 在MF中無論已知的HTML標(biāo)記還是其它符合XML規(guī)范的標(biāo)記, 都是用統(tǒng)一的DOM樹來處理的, 因此, MF事實(shí)上完全可以使用DOM數(shù)據(jù)島, 但與IE小小的不同在于: 在IE中<xml> 是個(gè) DOM document, 而在MF只是 DOM node. 這個(gè)差別通常不足為患. 但是有一個(gè)小小的細(xì)節(jié), 為了兼容HTML相當(dāng)隨意的語(yǔ)法, MF無法識(shí)別簡(jiǎn)寫的空標(biāo)記. 如: <xml id="xx"><book><title>xxxx</title><content/><index/></book></xml>, 這其中<content/>和<index/>是簡(jiǎn)寫形式的, 會(huì)使MF無法識(shí)別, 應(yīng)當(dāng)寫成: <content></content><index></index> 不過, 我懷疑如果用XHTML, 可能就沒有這種問題. 但我還沒有試過. 對(duì)于IE中<xml>干擾HTML的DOM結(jié)構(gòu)問題, 我現(xiàn)在的方法是處理完畢后把它從HTML的 DOM中刪除. 不知道還有沒有更好的解.
本文鏈接:http://www.95time.cn/tech/web/2008/5422.asp
出處:我愛CSS
責(zé)任編輯:bluehearts
上一頁(yè) JS的IE和FF兼容性問題匯總 [2] 下一頁(yè)
◎進(jìn)入論壇網(wǎng)頁(yè)制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評(píng)論。
|