zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

JSCSS 不同 IE firefox FF
2023-06-13 09:14:09 时间
在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:
复制代码代码如下:

varobj=document.getElementById("_td");
vartext;
if(obj.innerText){
text=obj.innerText;
}elseif(obj.textContent){
text=obj.textContent;
}

2.
在Ajax中返回对象状态IE可以使用readystate但是在FF中必须为readyState,所以最好是都写成readyState
3.获取IE和FF中的键盘返回值,
<inputtype="text"onkeyUp="test(event)"/>
functiontest(e){
varkeyc=GetKeyCode(e);
alert(keyc);
}
functionGetKeyCode(e){//取得不同浏览器下的键盘事件值
varkeyc;
if(window.event){//ie键盘事件
keyc=e.keyCode;
}elseif(e.which){//火狐
keyc=e.which;
}
returnkeyc;
}
4.为对象添加移除事件
varobj=document.getElementById("_tname");
添加事件:
if(obj.attachEvent){
obj.attachEvent("onchange",function(){
otherfunction(params);//这里可以给其实方法传参,也可以直接调用其它方法
});
}elseif(obj.addEventListener){
obj.addEventListener("change",function(){
otherfunction(params);
},false);
}
移除事件:
obj.onclick=null;
/*下面的代码为什么不行,IE下输出obj.onclick竟然为anonymous,希望高手能帮忙解决
if(obj.detachEvent){
obj.detachEvent("onchange",test);
}elseif(obj.removeEventListener){
obj.removeEventListener("change",test,false);
}*/
5.
IE中event.x和event.y
在FF中只有event.pageX,event.pageY
都有event.clientX和event.clientY属性
解决办法:
varx=e.x?e.x:e.pageX;//e为event对象传进来的参数
6.IE下input.type属性为只读,但是MF下可以修改
7.在IE中,getElementsByName()、(document.all[name](还未测试成功))均不能用来取得div元素(是否还有其它不能取的元素还不知道)。
8.通过js来触发事件
<scripttype="text/javascript"><!--
functionhanderToClick(){
varobj=document.getElementById("btn1");
if(document.all){//IE中
obj.fireEvent("onclick");
}else{
vare=document.createEvent("MouseEvent");
e.initEvent("click",false,false);
obj.dispatchEvent(e);
}
}
//--></script>
<inputtype="button"value="btn1"id="btn1"onclick="alert("按钮btn1的click事件")"/>
<inputtype="button"value="触发ID为btn1的onclick事件"onclick="handerToClick()"/>
9.IE下event对象有srcElement属性,Firefox下,event对象有target属性
varobj=e.srcElement?e.srcElement:e.target;//e为event对象传进来的参数
//从这里下面的还未测试
10.在FF中自己定义的属性必须getAttribute()取得
11.节点问题
IE中使用parentElementparement.children,而FF中使用parentNodeparentNode.childNodes
childNodes的下标的含义在IE和FF中不同,FF使用DOM规范,childNodes中会插入空白文本节点。
FF中节点没有removeNode方法,必须使用如下方法node.parentNode.removeChild(node)