資源描述:
《js瀏覽器兼容手冊(cè)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、js瀏覽器兼容手冊(cè)avascript部分1.document.form.item問題問題:代碼中存在document.formName.item("itemName")這樣的語句,不能在FF下運(yùn)行解決方法:改用document.formName.elements["elementName"]2.集合類對(duì)象問題問題:代碼中許多集合類對(duì)象取用時(shí)使用(),IE能接受,F(xiàn)F不能解決方法:改用[]作為下標(biāo)運(yùn)算,例:document.getElementsByName("inputName")(1)改為document.getElementsByName("i
2、nputName")[1]3.window.event問題:使用window.event無法在FF上運(yùn)行解決方法:FF的event只能在事件發(fā)生的現(xiàn)場(chǎng)使用,此問題暫無法解決??梢园裡vent傳到函數(shù)里變通解決:onMouseMove="functionName(event)"functionfunctionName(e){e=e
3、
4、window.event;......}4.HTML對(duì)象的id作為對(duì)象名的問題問題:在IE中,HTML對(duì)象的ID可以作為document的下屬對(duì)象變量名直接使用,在FF中不能解決方法:使用對(duì)象變量時(shí)全部用標(biāo)準(zhǔn)的getEl
5、ementById("idName")5.用idName字符串取得對(duì)象的問題問題:在IE中,利用eval("idName")可以取得id為idName的HTML對(duì)象,在FF中不能解決方法:用getElementById("idName")代替eval("idName")6.變量名與某HTML對(duì)象id相同的問題問題:在FF中,因?yàn)閷?duì)象id不作為HTML對(duì)象的名稱,所以可以使用與HTML對(duì)象id相同的變量名,IE中不能解決方法:在聲明變量時(shí),一律加上var,以避免歧義,這樣在IE中亦可正常運(yùn)行最好不要取與HTML對(duì)象id相同的變量名,以減少錯(cuò)誤7.ev
6、ent.x與event.y問題問題:在IE中,event對(duì)象有x,y屬性,F(xiàn)F中沒有解決方法:在FF中,與event.x等效的是event.pageX,但event.pageXIE中沒有故采用event.clientX代替event.x,在IE中也有這個(gè)變量event.clientX與event.pageX有微妙的差別,就是滾動(dòng)條要完全一樣,可以這樣:mX=event.x?event.x:event.pageX;然后用mX代替event.x8.關(guān)于frame問題:在IE中可以用window.testFrame取得該frame,F(xiàn)F中不行解決方法:w
7、indow.top.document.getElementById("testFrame").src='xx.htm'window.top.frameName.location='xx.htm'9.取得元素的屬性在FF中,自己定義的屬性必須getAttribute()取得10.在FF中沒有parentElement,parement.children而用parentNode,parentNode.childNodes問題:childNodes的下標(biāo)的含義在IE和FF中不同,F(xiàn)F的childNodes中會(huì)插入空白文本節(jié)點(diǎn)解決方法:可以通過node.g
8、etElementsByTagName()來回避這個(gè)問題問題:當(dāng)html中節(jié)點(diǎn)缺失時(shí),IE和FF對(duì)parentNode的解釋不同,例如:
FF中input.parentNode的值為form,而IE中input.parentNode的值為空節(jié)點(diǎn)問題:FF中節(jié)點(diǎn)自己沒有removeNode方法解決方法:必須使用如下方法node.parentNode.removeChild(node)11.const問題問題:在IE中不能使用const關(guān)鍵字解決方法:以var代替12.body對(duì)象F
9、F的body在body標(biāo)簽沒有被瀏覽器完全讀入之前就存在,而IE則必須在body完全被讀入之后才存在這會(huì)產(chǎn)生在IE下,文檔沒有載入完時(shí),在body上appendChild會(huì)出現(xiàn)空白頁面的問題解決方法:一切在body上插入節(jié)點(diǎn)的動(dòng)作,全部在onload后進(jìn)行13.urlencoding問題:一般FF無法識(shí)別js中的&解決方法:在js中如果書寫url就直接寫&不要寫&14.nodeName和tagName問題問題:在FF中,所有節(jié)點(diǎn)均有nodeName值,但textNode沒有tagName值,在IE中,nodeName的使用有問題解決方法:使用tag
10、Name,但應(yīng)檢測(cè)其是否為空15.元素屬性IE下input.type屬性為只讀,但是FF下可以修改16.document.