JS在firefox和IE之间的区别

1.    HTML 对象的 id 作为对象名的问题
IE
HTML 对象的 ID 可以作为 document 的下属对象变量名直接使
FF:不支持

解决方法:使用 document.getElementById 替代 document.all

2.        如果控件只有 name, 没有 id, getElementById :
IE
:可以找到对象
FF
:返回 NULL
解决方法:所有控件必须设置 ID 属性

3.        Evel:
IE
:支持,
利用 eval(idName) 可以取得 id idName HTML
FF :不支持。
解决方法:统一使用
getElementById(idName) 代替 eval(idName)

4.        Event
IE
:用全局对象 window.event
FF
event 只能在事件发生的现场使 用, 在调用函数时传入 event
解决方法:使用之前做一下浏览器类型判断,各用各的。

5.        对象名称中美元符号‘ $’改为使用下划线‘ _

6.        集合类对象问题
IE
可以使用 () [] 获取集合类对象
FF
:只能使用 [] 获取集合类对象
现有代码中存在许多,不能在 FF 下运行
解决方法 : 统一使用 [] 获取集合类对象。 document.form.item("itemName") 这样的语句改为 document.form.elements["elementName"]

7.        变量名与某 HTML 对象 id 相同的问题
IE :不能
使用与 HTML 对象 id 相同的变量
FF:可以使用
解决方法:
在声明变量时,一律加上 var ,以避免歧义,这样在 IE 中亦可正常运行。
此外,最好不要取与 HTML 对象 id 相同的变量名,以减少错误

8.        Event 定位问题
IE :支持 event.x
event.y
FF
:支持
event.pageX event.pageY
解决方法,统一使用 event.clientX event.clientY ,但是在 FF event.clientX event.pageX 有微妙的差别(当整个页面有滚动条的时候),不过大多数时候是等效的 。如果要完全一样,可以判断浏览器类型后对应使用。

9.        父结点的问题
IE
parentElement parentElement.children
FF
parentNode parentNode.childNodes
childNodes
的下标的含义在 IE FF 中不同, FF 使用 DOM 规范, childNodes 中会插入空白文本节点。一般可以通过 node.getElementsByTagName() 来回避这个问题。


html 中节点缺失时, IE FF parentNode 的解释不同,例如
<form>
<table>
  <input/>
</table>
</form>

IE
input.parentNode 的值为空节点
FF
input.parentNode 的值为 form
FF
中节点没有 removeNode 方法,必须使用如下方法 node.parentNode.removeChild(node)

10.    const 问题
现有问题:
IE
:不支持 const 关键字。如 const constVar = 32; IE 中这是语法错误。
FF
:支持
解决方法:不使用 const ,以 var 代替

11.    body
IE:在
body 标签完全被读入之后才存
FF
body 标签没有被浏览器完全读入之前就存

12.    自定义属性问题
IE
:可以使用获取常规属性的方法来获取自定义属性 , 也可以使用 getAttribute() 获取自定义属性
FF
:只能使用 getAttribute() 获取自定义属性 .
解决方法:统一通过 getAttribute() 获取自定义属性

13.    event.srcElement 问题
IE
even.srcElement
FF
even.target
解决方法 : 使用时判断浏览器类型,各用各的。

14.    模态和非模态窗口
IE
:支持模态和非模态窗口
FF
:不支持
解决方法:直接使用 window.open(pageURL,name,parameters) 方式打开新窗 口。 如果需要将子窗口中的参数传递回父窗口 , 可以在子窗口中使用 window.opener 来访问父窗 口。

15.    innerText
IE
innerText
FF
textContent

16.    类似 obj.style.height = imgObj.height 的语句
IE
:有效
FF
:无效
解决方法:统一使用 obj.style.height = imgObj.height + 'px';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值