資源描述:
《Javascript和CSS瀏覽器兼容總結(jié)44377》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、這是我總結(jié)多年的一個(gè)小文檔,主要內(nèi)容是Javascript和CSS瀏覽器兼容總結(jié),最近看見冇人咨詢?yōu)g覽器兼容的問題,就貢獻(xiàn)出來。并不一定全,有的也可能不準(zhǔn)確,比如新出的IE8>Chrome等都沒有太多涉及,雖然最近做的一些項(xiàng)目也兼容了IE8、Chrome等,但都沒來的及總結(jié)進(jìn)去,后來就忘了…汗。人家—起慢慢完善吧。javascript部分1.document.form.item問題問題:代碼中存在document.formName.itemC4itemName^^)這樣的語句,不能在FF下運(yùn)行解決方法:改丿I]document.formName.elements[,,elementName,'
2、]2.集合類對象問題問題:代碼中許多集合類対象収用時(shí)使用(),IE能接受,F(xiàn)F不能解決方法:改用n作為下標(biāo)運(yùn)算,例:documcnt.gctElcmcntsByNamc("inputNamc'')(l)改為document.gctElcmcntsByNamcC3、IIwindow.event;4.HTML對象的id作為對象名的問題問題:在IE中,HTML對象的ID可以作為document的下屬対象變量名直接使用,在FF中不能解決方法:使用對象變量時(shí)全部用標(biāo)準(zhǔn)的getElementById(“idName”)1.用idName字符串取得対象的問題問題:在IE中,利用eval(“idName”)可以取得id為idNamc的HTML對象,在FF中不能解決方法:用getElementById(uidNameM)代替eval(uidNamen)2.變量名與某HTML對象id和同的問題問題:在FF中,因?yàn)閷ο骾d不作為HTML對象的名稱,所以可以使用與HTML對象
4、id相同的變量名,IE中不能解決方法:在聲明變罐時(shí),一律加上var,以避免歧義,這樣在IE屮亦可正常運(yùn)行最好不要取與HTML對彖id相同的變量名,以減少錯(cuò)誤3.event.x與event.y問題問題:在IE中,event對象有x,y屬性,F(xiàn)F中沒有解決方法:在FF屮,與event.x等效的是event.pageX,但event.pageXIE'I1沒有故采用event.clientX代替event.x,在IE中也有這個(gè)變量event.clientX與event.pageX有微妙的差別,就是滾動(dòng)條要完全一樣,可以這樣:mX=event.x?event.x:event.pageX;然后用mX代替e
5、vent.x4.關(guān)于frame問題:在IE中可以用window.testFrame取得該frame,FF中不行解決方法:window.top.document.getElementById(utestFrame^).src='xx.htm'window.top.frameName.location='xx.htrrf5.取得元索的屬性在FF中,自己定義的屬性必須getAttributeO取得6.在FF屮沒有parentElement,parement.children而川parentNode,parentNode.childNodes問題:childNodes的下標(biāo)的含義在IE和FF中不同,F(xiàn)
6、F的childNodcs中會(huì)插入空白文木節(jié)點(diǎn)解決方法:可以通過node.getElementsByTagName()來回避這個(gè)問題問題:當(dāng)html中節(jié)點(diǎn)缺失時(shí),IE和FF對parentNode的解釋不同,例如:
FF屮input.parentNode的值為form,而DE中input.parentNode的值為空節(jié)點(diǎn)問題:FF中節(jié)點(diǎn)口己沒有removeNode方法解決方法:必須使用如卜方法node.parentNode.removeChild(node)1.const問題問題:在IE中不能使用const關(guān)鍵字解決方法:以va
7、r代替2.body對象FF的body在body標(biāo)簽沒有被瀏覽器完全讀入之前就存在,而IE則必須在body完全被讀入Z后才存在這會(huì)產(chǎn)生在IE下,文檔沒有載入完時(shí),在body±appendChild會(huì)出現(xiàn)空白頁面的問題解決方法:—切在body上插入節(jié)點(diǎn)的動(dòng)作,全部在onload后進(jìn)行3.urlencoding問題:—?般FF無法識(shí)別js中的&解決方法:在js屮如果書寫url就肓接寫&不要寫&4.nod