IE和FireFox(FF)中js和css的不同

來源:互聯網
上載者:User

在IE和FireFox(FF)中js和css的不同
css:
1.
ul標籤中FF中有個padding值,卻沒有margin值,而在IE中正好相反
解決辦法:將ul的padding和margin都設為0(也可以不是0)如:padding:0;margin:0;list-style:none;
js:
1.
IE中innerText在FF中沒有,使用textContent;
eg: 複製代碼 代碼如下:var obj=document.getElementById("_td");
var text;
if(obj.innerText) {
text=obj.innerText;
} else if(obj.textContent) {
text=obj.textContent;
}

2.
在Ajax中返回對象狀態IE可以使用readystate但是在FF中必須為readyState,所以最好是都寫成readyState
3.擷取IE和FF中的鍵盤傳回值,
<input type="text" onkeyUp="test(event)"/>
function test(e) {
var keyc=GetKeyCode(e);
alert(keyc);
}
function GetKeyCode(e) {//取得不同瀏覽器下的鍵盤事件值
var keyc;
if(window.event) {//ie鍵盤事件
keyc=e.keyCode;
} else if (e.which) {//Firefox
keyc=e.which;
}
return keyc;
}
4.為對象添加移除事件
var obj=document.getElementById("_tname');
添加事件:
if(obj.attachEvent) {
obj.attachEvent("onchange",function() {
otherfunction(params);//這裡可以給其實方法傳參,也可以直接調用其它方法
});
} else if(obj.addEventListener) {
obj.addEventListener("change",function() {
otherfunction(params);
},false);
}
移除事件:
obj.onclick=null;
/*下面的代碼為什麼不行,IE下輸出obj.onclick竟然為anonymous,希望高手能幫忙解決
if(obj.detachEvent) {
obj.detachEvent("onchange",test);
} else if(obj.removeEventListener) {
obj.removeEventListener("change",test,false);
}*/
5.
IE中event.x和event.y
在FF中只有event.pageX,event.pageY
都有event.clientX和event.clientY屬性
解決辦法:
var x=e.x?e.x:e.pageX;//e為event對象傳進來的參數
6.IE下 input.type屬性為唯讀,但是MF下可以修改
7.在 IE 中,getElementsByName()、(document.all[name] (還未測試成功))均不能用來取得 div元素(是否還有其它不能取的元素還不知道)。
8.通過js來觸發事件
<script type="text/javascript"><!--
function handerToClick(){
var obj=document.getElementById("btn1");
if(document.all){//IE中
obj.fireEvent("onclick");
} else {
var e=document.createEvent('MouseEvent');
e.initEvent('click',false,false);
obj.dispatchEvent(e);
}
}
// --></script>
<input type="button" value="btn1" id="btn1" onclick=" alert('按鈕btn1的click事件') " />
<input type="button" value="觸發ID為btn1的onclick事件" onclick=" handerToClick() " />
9.IE下event對象有srcElement屬性,Firefox下,event對象有target屬性
var obj=e.srcElement?e.srcElement:e.target;//e為event對象傳進來的參數
//從這裡下面的還未測試
10.在FF中自己定義的屬性必須getAttribute()取得
11.節點問題
IE中使用parentElement parement.children,而FF中使用parentNode parentNode.childNodes
childNodes的下標的含義在IE和FF中不同,FF使用DOM規範,childNodes中會插入空白文本節點。
FF中節點沒有removeNode方法,必須使用如下方法 node.parentNode.removeChild(node)

相關文章

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.