開門記錄:FF和IE的某些區別

瀏覽器主要分爲兩類,第一類 IE系列,第二類 FF(Firefox) chrome safari(其中 netscape opera未加入測試)。如果沒有特別說明 chrome safari,則歸類在 FF

一.   跨頁面的數據調用

1.       IE中直接使用 parent就代表了父頁面的 window,而在 FF裏面必須要用 parent. contentWindow;

2.       <iframe id=”a” name=”a”  />, FF中使用 frames數組的數字索引 或是要設置 iframe name值才能調用 iframe(frames[“a”]或者 frame[0]) IE中可以不設置 name就能調用到這個 iframe,因爲 IE查找機制中 id可以代替 name

 

二.   xml的解析

1.       IE FF/safari Chorme xml文件解析不同;而且報錯方式也不同:

IE xmldoc . parseError . errorCode=0;

FF xmldoc . documentElement . tagName = “ parsererror”;

//IE/FF/Chrome/safari 通用 加載 XML 文件並返回 XML 文檔節點

function loadXmlFile ( xmlFile , isAsync ){

    isAsync = isAsync || false ;

    var xmlDom = null ;

    if ( window . ActiveXObject ){

        xmlDom = new ActiveXObject ( "Microsoft.XMLDOM" );

        //xmlDom.loadXML(xmlFile);// 如果用的是 XML 字符串

        xmlDom . load ( xmlFile ); // 如果用的是 xml 文件。

         xmlDom . async = isAsync ;

    } else if ( document . implementation && document . implementation . createDocument ){

        var xmlhttp = new window . XMLHttpRequest ();

        xmlhttp . open ( "GET" , xmlFile , isAsync );

        xmlhttp . send ( null );

        xmlDom = xmlhttp . responseXML ;

    } else {

        xmlDom = null ;

    }

    return xmlDom ;

}

 

2.       IE FF/safari/Chrome xml字符串解析不同。

3.       IE FF xml節點解析不同。

<ServerConfig>

    <WriteLog>1</WriteLog>

    <IP>192.168.1.70</IP>

    <Port>8021</Port>

</ServerConfig >

一般認爲 ServerConfig 節點下的第一哥子節點是 WriteLog 但是在 FF 中, ServerConfig 不是 WriteLog ,而是一個默認的文本子節點 # 其內容爲空。在 FF 解析 xml 內容時,要注意判斷這個默認的文本子節點

三.   Js需要注意的地方

1.       執行 js,出現錯誤時, IE繼續執行, FF中斷執行

2.       獲取某個節點內無 html節點內容

IE obj.innerText FF obj.textContent

3.       html層問題

IE中,層的內容爲空,則忽略該層;在 FF中,層的內容爲空,不會忽略,會阻擋下一層。設置 display:none就能使該層不可能

4.       marquee動態改變的問題

marque動態改變其值, IE會重新計算其文本長度,自動調整循環;在 FF中,按照初始化的內容,計算文本長度,動態改變內容後,可能出現內容未顯示完整就進行下一此循環。

5.       多層接收同一事件

多層重疊在一起,又監聽同一事件。 IE中,都會接收到; FF中,最上層纔會接收到事件,下層的需要手動傳遞事件。

6.       每一次使用 window.setInterval,都要記得使用 window.clearInterval來清除。否則,在關閉的某個 iframe裏面有 setInterval則會出錯,造成內存溢出。

7.       html元素的調用,

IE中可以使用 document.all.ElemName ElemName或是 ElemID等簡便方法進行調用;在 FF中必須用 document.getElementById或是 document.getElementsByName等規範調用。

8.       滾動條樣式, IE能設置, FF不能設置

9.       背景透明, IE filter FF opacity

10.   width+border:可見寬度。在 FF中是 width+border,在 IE中是 width

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章