Ie與Firefox差異(JavaScript)

來源:互聯網
上載者:User

1. 當一個對象為不可見時,在IE中是不可以設定它集中焦點的,但是在Firefox裡可以
2. 向表(Table)追加行:
在FF、Safari、Opera等瀏覽器中,用document.createElement建立行後用document.appendChild將行直接添加到表上。但是在IE裡不可以,而且沒有任何錯誤提示,這時候,需要為表添加表體(tbody),然後將新建立的行添加到表體(tbody),
3. childNodes的不同:Firefox把斷行符號後的空白當作文本節點,而ie不是
4. innerText是IE專有的方法,textContent是Firefox專有的,innerHTML則兩者都相容
5. 設定某個node對象的style class名稱。
ie中要設定某個node的class用”className”作為attr來set或者get。
ff等其它的瀏覽器用”class”作為attr來set或者get。
6. 事件對象。ie用eventff用evnt
7. 事件作用對象。ie用objEvent.srcElement,ff用objEvent.target
8,document.form.item 問題。
ie中用document.formName.item("itemName")
ff中改用 document.formName.elements["elementName"]
9。集合類對象取用時使用 (),IE 能接受,MF 不能。解決方案:改用 [] 作為下標運算
10,window.event 無法在 fF 上運行
11,HTML 對象的 id 作為對象名的問題
現有問題:在 IE 中,HTML 對象的 ID 可以作為 document 的下屬物件變數名直接使用。在 fF 中不能。
解決方案:用 getElementById("idName") 代替 idName 作為物件變數使用
11,變數名與某 HTML 對象 id 相同的問題
現有問題: fF中,對象 id 不作為 HTML 對象的名稱,所以可使用與 HTML 對象 id 相同的變數名,IE 中不能
解決方案:在聲明變數時,一律加上 var ,以避免歧義,這樣在 IE 中亦可正常運行。此外,最好不要取與 HTML 對象 id 相同的變數名,以減少錯誤
12,event.x 與 event.y 問題
現有問題:在IE 中,event 對象有 x, y 屬性,fF中沒有。
解決方案:
在fF中,與event.x 等效的是 event.pageX。但event.pageX IE中沒有。
故採用 event.clientX 代替 event.x。在IE 中也有這個變數。
event.clientX 與 event.pageX 有微妙的差別(當整個頁面有捲軸的時候),不過大多數時候是等效的。
如果要完全一樣,可以稍麻煩些:mX = event.x ? event.x : event.pageX;然後用 mX 代替 event.x
13,父結點的問題
在ff中沒有 parentElement parement.children 而用 parentNode parentNode.childNodes。childNodes的下標的含義在IE和fF中不同,fF使用DOM規範,childNodes中會插入空白文本節點。一般可以通過node.getElementsByTagName()來迴避這個問題。
14,const 問題
現有問題:在 IE 中不能使用 const 關鍵字。如 const constVar = 32; 在IE中這是語法錯誤。
解決方案:不使用 const ,以 var 代替。
15,body 對象
fF的body在body標籤沒有被瀏覽器完全讀入之前就存在,而IE則必須在body完全被讀入之後才存在
16,nodeName 和 tagName 問題
現有問題:在ff中,所有節點均有 nodeName 值,但 textNode 沒有 tagName 值。在 IE 中,nodeName 的使用好象有問題。
解決方案:使用 tagName,但應檢測其是否為空白
17,元素屬性
IE下 input.type屬性為唯讀,但是ff下可以修改
18,document.getElementsByName() 和 document.all[name] 的問題
現有問題:在 IE 中,getElementsByName()、document.all[name] 均不能用來取得 div 元素(是否還有其它不能取的元素還不知道)。
19,對空格符的處理。按照HTML的標準,空白字元是 。在ff中,如果你誤寫成&nbsp(少了一個分號)一定 不會被FireFox認為是空格,FireFox會認為它是&nbsp。而在IE中,如果你誤寫成&nbsp(少了一個分號)IE智 能地認為它是空格。
20,對注釋的處理。
按照HTML的標準,注釋的操作是放在<!--和-->之間的,而且注釋中不能有--,否則會產生 HTML解析錯誤.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.