JavaScript在IE和FireFox不同点(1)

本文针对IE与Firefox浏览器间JavaScript实现方式的不同,总结了包括表单元素访问、集合类对象操作、自定义属性读取等在内的十个关键问题及其解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.document.formName.item("itemName") 问题

 

 

说明:IE,可以使用document.formName.item("itemName") document.formName.elements["elementName"];Firefox,只能使用 document.formName.elements["elementName"].

解决方法:统一使用document.formName.elements["elementName"].

 

2.集合类对象问题

 

说明:IE,可以使用()[]获取集合类对象;Firefox,只能使用[]获取集合类对象.

解决方法:统一使用[]获取集合类对象.

 

3.自定义属性问题

 

说明:IE,可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义属性;Firefox,只能使用getAttribute()获取自定义属性.

解决方法:统一通过getAttribute()获取自定义属性.

 

4.eval("idName")问题

 

说明:IE,,可以使用eval("idName")getElementById("idName")来取得ididNameHTML对象;Firefox下只能使用getElementById("idName")来取得ididNameHTML对象.

解决方法:统一用getElementById("idName")来取得ididNameHTML对象.

 

5.变量名与某HTML对象ID相同的问题

 

说明:IE,HTML对象的ID可以作为document的下属对象变量名直接使用;Firefox下则不能.Firefox,可以使用与HTML对象ID相同的变量名;IE下则不能。

解决方法:使用document.getElementById("idName")代替document.idName.最好不要取HTML对象ID相同的变量名,以减少错误;在声明变量时,一律加上var,以避免歧义.

 

6.const问题

 

说明:Firefox,可以使用const关键字或var关键字来定义常量;IE,只能使用var关键字来定义常量.

解决方法:统一使用var关键字来定义常量.

 

7.input.type属性问题

 

说明:IEinput.type属性为只读;但是Firefoxinput.type属性为读写.

 

8.window.event问题

 

说明:window.event只能在IE下运行,而不能在Firefox下运行,这是因为Firefoxevent只能在事件发生的现场使用.

解决方法:

IE:

<input name="Button8_1" type="button" value="IE" οnclick="javascript:gotoSubmit8_1()"/>

...

<script language="javascript">

function gotoSubmit8_1() {

...

alert(window.event); //use window.event

...

}

</script>

IE&Firefox:

<input name="Button8_2" type="button" value="IE" οnclick="javascript:gotoSubmit8_2(event)"/>

...

<script language="javascript">

function gotoSubmit8_2(evt) {

...

evt=evt?evt:(window.event?window.event:null);

alert(evt); //use evt

...

}

</script>

 

9.event.xevent.y问题

 

说明:IE,even对象有x,y属性,但是没有pageX,pageY属性;Firefox,even对象有pageX,pageY属性,但是没有x,y属性.

解决方法:使用mX(mX = event.x ? event.x : event.pageX;)来代替IE下的event.x或者Firefox下的event.pageX.

 

10.event.srcElement问题

 

说明:IE,even对象有srcElement属性,但是没有target属性;Firefox,even对象有target属性,但是没有srcElement属性.

解决方法:使用obj(obj = event.srcElement ? event.srcElement : event.target;)来代替IE下的event.srcElement或者Firefox下的event.target.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值