`
yangsp1
  • 浏览: 47633 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Javascript在IE和Firefox中的区别

    博客分类:
  • js
阅读更多

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
转自:http://madinsect.blogbus.com/logs/24899256.html



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解析错误
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics