日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
IE與Firefox在獲得對(duì)象上的區(qū)別

你知道IE與Firefox獲得對(duì)象上的區(qū)別嗎,這里和大家簡(jiǎn)單分享一下,相信本文介紹一定會(huì)讓你有所收獲。

IE與Firefox獲得對(duì)象上的區(qū)別

1.對(duì)象問(wèn)題

1.1Form對(duì)象

現(xiàn)有問(wèn)題:
現(xiàn)有代碼這獲得form對(duì)象通過(guò)document.forms("formName"),這樣使用在IE能接受,MF不能。
解決方法:
改用作為下標(biāo)運(yùn)算。改為document.forms["formName"]
備注
上述的改用作為下標(biāo)運(yùn)算中的formName是id而name

1.2HTML對(duì)象

現(xiàn)有問(wèn)題:
在IE中,HTML對(duì)象的ID可以作為document的下屬對(duì)象變量名直接使用。在MF中不能。
document.all("itemName")或者document.all("itemId")
解決方法:
使用對(duì)象ID作為對(duì)象變量名
document.getElementById("itemId")
備注
document.all是IE自定義的方法,所以請(qǐng)大家盡量不使用。
還有一種方式,在IE和MF都可以使用
varf=document.forms["formName"];
varo=f.itemId;

1.3DIV對(duì)象

現(xiàn)有問(wèn)題:
在IE中,DIV對(duì)象可以使用ID作為對(duì)象變量名直接使用。在MF中不能。
DivId.style.display="none"
解決方法:
document.getElementById("DivId").style.display="none"
備注
獲得對(duì)象的方法不管是不是DIV對(duì)象,都使用getElementById方法。參見(jiàn)1.2

1.4關(guān)于frame

現(xiàn)有問(wèn)題
在IE中可以用window.testFrame取得該frame,mf中不行
解決方法
在frame的使用方面MF和IE的最主要的區(qū)別是:
如果在frame標(biāo)簽中書(shū)寫(xiě)了以下屬性:

那么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)簽寫(xiě)在最上層的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)容

1.5窗口

現(xiàn)有問(wèn)題
IE中可以通過(guò)showModalDialog和showModelessDialog打開(kāi)模態(tài)和非模態(tài)窗口,但是MF不支持。
解決辦法
直接使用window.open(pageURL,name,parameters)方式打開(kāi)新窗口。
如果需要傳遞參數(shù),可以使用frame或者iframe。#p#

2.總結(jié)

2.1在JS中定義各種對(duì)象變量名時(shí),盡量使用id,避免使用name。

在IE中,HTML對(duì)象的ID可以作為document的下屬對(duì)象變量名直接使用。在MF中不能,所以在平常使用時(shí)請(qǐng)盡量使用id,避免只使用name,而不使用id。

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

現(xiàn)有問(wèn)題
在MF中,因?yàn)閷?duì)象id不作為HTML對(duì)象的名稱,所以可以使用與HTML對(duì)象id相同的變量名,IE中不能。
解決方法
在聲明變量時(shí),一律加上var,以避免歧義,這樣在IE中亦可正常運(yùn)行。
此外,***不要取與HTML對(duì)象id相同的變量名,以減少錯(cuò)誤。

1.document.all

Firefox可以兼容document.all,但會(huì)生成一條警告。可以用getElementById("*")或者getElementByTagName("*)來(lái)代替
不過(guò)對(duì)于document.all.length等屬性,則完全不兼容。

2.parentElement

這個(gè)也不兼容。比方說(shuō),obj.parentElement.name則應(yīng)改成obj.parentNode.attributes.getNamedItem("name").nodeValue(不知道如何寫(xiě)得更簡(jiǎn)潔些)

3.event

W3C不支持windows.event
比方說(shuō):
在IE里面
 

 
 
 
  1. .....  
  2. functiononMenuClick()  
  3. {  
  4. collapseMenu(event.srcElement);  
  5. }  

工作正常。不過(guò)在Firefox中,則改成:

 
 
 
  1. functiononMenuClick(evt)  
  2. {  
  3. if(evt==null)  
  4. evt=window.event;//ForIE  
  5. varsrcElement=evt.srcElement?evt.srcElement:evt.target;  
  6. //IE使用srcElement,而Firefox使用target  
  7. collapseMenu(srcElement);  
  8. }  
  9.  

 IE和FIREFOX在解析CSS方面的區(qū)別

◆對(duì)高度的解析

IE:將根據(jù)內(nèi)容的高度變化,包括未定義高度的圖片內(nèi)容,即使定義了高度,當(dāng)內(nèi)容超過(guò)高度時(shí),將使用實(shí)際高度

Firefox:沒(méi)有定義高度時(shí),如果內(nèi)容中包括了圖片內(nèi)容,MF的高度解析是根據(jù)印刷標(biāo)準(zhǔn),這樣就會(huì)造成和實(shí)際內(nèi)容高度不符合的情況;當(dāng)定義了高度,但是內(nèi)容超過(guò)高度時(shí),內(nèi)容會(huì)超出定義的高度,但是區(qū)域使用的樣式不會(huì)變化,造成樣式錯(cuò)位。

結(jié)論:大家在可以確定內(nèi)容高度的情況下***定義高度,如果真的沒(méi)有辦法定義高度,***不用使用邊框樣式,否則樣式肯定會(huì)出現(xiàn)混亂!

◆img對(duì)象alt和title的解析

alt:當(dāng)照片不存在或者load錯(cuò)誤時(shí)的提示;

title:照片的tip說(shuō)明。

在IE中如果沒(méi)有定義title,alt也可以作為img的tip使用,但是在MF中,兩者完全按照標(biāo)準(zhǔn)中的定義使用

結(jié)論:大家在定義img對(duì)象時(shí),***將alt和title對(duì)象都寫(xiě)全,保證在各種瀏覽器中都能正常使用

◆其他的細(xì)節(jié)差別

當(dāng)你在寫(xiě)css的時(shí)候,特別是用float:left(或right)排列一竄圖片時(shí),會(huì)發(fā)現(xiàn)在firefox里面正常而IE里面有問(wèn)題。無(wú)論你用margin:0,還是border:0來(lái)約束,都無(wú)濟(jì)于事。

其實(shí)這里還有另外一個(gè)問(wèn)題,就是IE對(duì)于空格的處理,firefox是忽略的而IE對(duì)于塊與塊之間的空格是處理的。也就是說(shuō)一個(gè)div結(jié)束后要緊接著一個(gè)div寫(xiě),中間不要有回車或者空格。不然也許會(huì)有問(wèn)題,比如3px的偏差,而且這個(gè)原因很難發(fā)現(xiàn)。

非常不走運(yùn)的是我又碰到了這樣的問(wèn)題,多個(gè)img標(biāo)簽連著,然后定義的float:left,希望這些圖片可以連起來(lái)。但是結(jié)果在firefox里面正常而IE里面顯示的每個(gè)img都相隔了3px。我把標(biāo)簽之間的空格都刪除都沒(méi)有作用。

后來(lái)的解決方法是在img外面套li,并且對(duì)li定義margin:0,這樣就解決了IE和firefox的顯示偏差。IE對(duì)于一些模型的解釋會(huì)產(chǎn)生很多錯(cuò)誤問(wèn)題,只有多多嘗試才能發(fā)現(xiàn)原因。這只是一些簡(jiǎn)單的區(qū)別,在做布局和CSS設(shè)計(jì)時(shí)候可以綜合考慮,但最為有效與簡(jiǎn)單的解決兼容問(wèn)題還是用TABLE表格,表格在兼容性方面有著不錯(cuò)的表現(xiàn).

另外在模版的JS設(shè)計(jì)的時(shí)候也需要考慮兩者對(duì)代碼的兼容


當(dāng)前標(biāo)題:IE與Firefox在獲得對(duì)象上的區(qū)別
鏈接地址:http://www.dlmjj.cn/article/dhpsjgd.html