当前位置: 首页 > 图文教程 > 网络编程 > Javascript > IE和FireFox(FF)中js和css的不同

Javascript
ext读取两种结构的xml的代码
javascript css float属性的特殊写法
JS网页图片查看器(兼容IE、FF)可控制图片放大缩小移动
jQuery实例入门(表格隔行变色)
js实例入门(简单展开或关闭)
Ext面向对象开发实践代码
仿迅雷焦点广告效果(JQuery版)
JQuery学习笔记 实现图片翻转效果和TAB标签切换效果
传递参数的标准方法(jQuery.ajax)
jquery $.ajax入门应用二
$.ajax json数据传递方法
JavaScript使用技巧精萃[代码非常实用]
js textarea自动下拉(带计数)图
javascript innerHTML、outerHTML、innerText、outerText的区别
输入文字自动变化宽度的INPUT,带计数(图)
一个仿Windows UI的html table,兼容IE和firefox
JS多个矩形块选择效果代码(模拟CS结构)
[原创]关键字空格替换为逗号的js代码
JavaScript CSS创建右击菜单效果代码
js调试工具 Javascript Debug Toolkit 2.0.0版本发布

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 338 ::
收藏到网摘: n/a

整理了一点IE和FF下的不同点,欢迎大家补充 在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) {//火狐
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)