欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

JS在IE和Firefox兼容性問(wèn)題及解決方法是怎樣的

JS在IE和Firefox兼容性問(wèn)題及解決方法是怎樣的,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)成立與2013年,先為富平等服務(wù)建站,富平等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為富平企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

你對(duì)JS在IE和Firefox兼容性問(wèn)題解決方法是否熟悉,這里和大家分享一下,比如現(xiàn)有代碼中存在許多document.formName.item("itemName")這樣的語(yǔ)句,不能在MF下運(yùn)行。我們可以改用document.formName.elements["elementName"]來(lái)解決。

JS在IE和Firefox兼容性問(wèn)題匯編

以下以IE代替InternetExplorer,以MF代替MozzilaFirefox

1.document.form.item問(wèn)題

(1)現(xiàn)有問(wèn)題:

現(xiàn)有代碼中存在許多document.formName.item("itemName")這樣的語(yǔ)句,不能在MF下運(yùn)行

(2)解決方法:

改用document.formName.elements["elementName"]

(3)其它

2.集合類對(duì)象問(wèn)題

(1)現(xiàn)有問(wèn)題:

現(xiàn)有代碼中許多集合類對(duì)象取用時(shí)使用(),IE能接受,MF不能。

(2)解決方法:

改用[]作為下標(biāo)運(yùn)算。如:document.forms("formName")改為document.forms["formName"]。
又如:document.getElementsByName("inputName")(1)改為document.getElementsByName("inputName")[1]
(3)其它

3.window.event

(1)現(xiàn)有問(wèn)題:

使用window.event無(wú)法在MF上運(yùn)行

(2)解決方法:

MF的event只能在事件發(fā)生的現(xiàn)場(chǎng)使用,此問(wèn)題暫無(wú)法解決。可以這樣變通:
原代碼(可在IE中運(yùn)行):

<inputtypeinputtype="button"name="someButton"value="提交" onclick="javascript:gotoSubmit()"/> ...  <scriptlanguagescriptlanguage="javascript"> functiongotoSubmit(){  ...  alert(window.event);//usewindow.event  ...  }  </script>

新代碼(可在IE和MF中運(yùn)行):

<inputtypeinputtype="button"name="someButton"value="提交" onclick="javascript:gotoSubmit(event)"/> ...  <scriptlanguagescriptlanguage="javascript"> functiongotoSubmit(evt){  evtevt=evt?evt:(window.event?window.event:null);  ...  alert(evt);//useevt  ...  }  </script>

此外,如果新代碼中***行不改,與老代碼一樣的話(即gotoSubmit調(diào)用沒(méi)有給參數(shù)),則仍然只能在IE中運(yùn)行,但不會(huì)出錯(cuò)。所以,這種方案tpl部分仍與老代碼兼容。

4.HTML對(duì)象的id作為對(duì)象名的問(wèn)題

(1)現(xiàn)有問(wèn)題

在IE中,HTML對(duì)象的ID可以作為document的下屬對(duì)象變量名直接使用。在MF中不能。

(2)解決方法

用getElementById("idName")代替idName作為對(duì)象變量使用。

5.用idName字符串取得對(duì)象的問(wèn)題

(1)現(xiàn)有問(wèn)題

在IE中,利用eval(idName)可以取得id為idName的HTML對(duì)象,在MF中不能。

(2)解決方法

用getElementById(idName)代替eval(idName)。

6.變量名與某HTML對(duì)象id相同的問(wèn)題

(1)現(xiàn)有問(wèn)題

在MF中,因?yàn)閷?duì)象id不作為HTML對(duì)象的名稱,所以可以使用與HTML對(duì)象id相同的變量名,IE中不能。

(2)解決方法

在聲明變量時(shí),一律加上var,以避免歧義,這樣在IE中亦可正常運(yùn)行。
此外,***不要取與HTML對(duì)象id相同的變量名,以減少錯(cuò)誤。

(3)其它

7.event.x與event.y問(wèn)題

(1)現(xiàn)有問(wèn)題

在IE中,event對(duì)象有x,y屬性,MF中沒(méi)有。

(2)解決方法

在MF中,與event.x等效的是event.pageX。但event.pageXIE中沒(méi)有。
故采用event.clientX代替event.x。在IE中也有這個(gè)變量。
event.clientX與event.pageX有微妙的差別(當(dāng)整個(gè)頁(yè)面有滾動(dòng)條的時(shí)候),不過(guò)大多數(shù)時(shí)候是等效的。

如果要完全一樣,可以稍麻煩些:mX=event.x?event.x:event.pageX;然后用mX代替event.x

(3)其它
event.layerX在IE與MF中都有,具體意義有無(wú)差別尚未試驗(yàn)。

8.關(guān)于frame

(1)現(xiàn)有問(wèn)題

在IE中可以用window.testFrame取得該frame,mf中不行

(2)解決方法

在frame的使用方面mf和ie的最主要的區(qū)別是:

如果在frame標(biāo)簽中書(shū)寫了以下屬性:

<framesrcframesrc="xx.htm"id="frameId"name="frameName"/>

那么ie可以通過(guò)id或者name訪問(wèn)這個(gè)frame對(duì)應(yīng)的window對(duì)象,而mf只可以通過(guò)name來(lái)訪問(wèn)這個(gè)frame對(duì)應(yīng)的window對(duì)象。例如如果上述frame標(biāo)簽寫在最上層的window里面的htm里面,那么可以這樣訪問(wèn)

ie:window.top.frameId或者window.top.frameName來(lái)訪問(wèn)這個(gè)window對(duì)象
mf:只能這樣window.top.frameName來(lái)訪問(wèn)這個(gè)window對(duì)象

另外,在mf和ie中都可以使用window.top.document.getElementById("frameId")來(lái)訪問(wèn)frame標(biāo)簽,并且可以通過(guò)window.top.document.getElementById("testFrame").src='xx.htm'來(lái)切換frame的內(nèi)容,也都可以通過(guò)window.top.frameName.location='xx.htm'來(lái)切換frame的內(nèi)容

9.在mf中,自己定義的屬性必須getAttribute()取得

10.在mf中沒(méi)有parentElementparement.children而用

parentNodeparentNode.childNodes
childNodes的下標(biāo)的含義在IE和MF中不同,MF使用DOM規(guī)范,childNodes中會(huì)插入空白文本節(jié)點(diǎn)。
一般可以通過(guò)node.getElementsByTagName()來(lái)回避這個(gè)問(wèn)題。
當(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)沒(méi)有removeNode方法,必須使用如下方法node.parentNode.removeChild(node)

11.const問(wèn)題

(1)現(xiàn)有問(wèn)題:

在IE中不能使用const關(guān)鍵字。如constconstVar=32;在IE中這是語(yǔ)法錯(cuò)誤。

(2)解決方法:

不使用const,以var代替。

12.body對(duì)象

MF的body在body標(biāo)簽沒(méi)有被瀏覽器完全讀入之前就存在,而IE則必須在body完全被讀入之后才存在

13.urlencoding

在js中如果書(shū)寫url就直接寫&不要寫&amp;例如varurl='xx.jsp?objectName=xx&amp;objectEvent=xxx';
frm.action=url那么很有可能url不會(huì)被正常顯示以至于參數(shù)沒(méi)有正確的傳到服務(wù)器
一般會(huì)服務(wù)器報(bào)錯(cuò)參數(shù)沒(méi)有找到
當(dāng)然如果是在tpl中例外,因?yàn)閠pl中符合x(chóng)ml規(guī)范,要求&書(shū)寫為&amp;
一般MF無(wú)法識(shí)別js中的&amp;

14.nodeName和tagName問(wèn)題

(1)現(xiàn)有問(wèn)題:

在MF中,所有節(jié)點(diǎn)均有nodeName值,但textNode沒(méi)有tagName值。在IE中,nodeName的使用好象有問(wèn)題。

(2)解決方法:

使用tagName,但應(yīng)檢測(cè)其是否為空。

15.元素屬性

IE下input.type屬性為只讀,但是MF下可以修改

16.document.getElementsByName()和document.all[name]的問(wèn)題

(1)現(xiàn)有問(wèn)題:

在IE中,getElementsByName()、document.all[name]均不能用來(lái)取得div元素(是否還有其它不能取的元素還不知道)。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。

本文標(biāo)題:JS在IE和Firefox兼容性問(wèn)題及解決方法是怎樣的
URL鏈接:http://chinadenli.net/article32/piggsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站移動(dòng)網(wǎng)站建設(shè)網(wǎng)站改版靜態(tài)網(wǎng)站面包屑導(dǎo)航響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站