六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 95|回复: 0

JavaScript在IE和FireFox不同点(1)

[复制链接]

升级  3.67%

59

主题

59

主题

59

主题

举人

Rank: 3Rank: 3

积分
211
 楼主| 发表于 2013-2-7 20:26:46 | 显示全部楼层 |阅读模式
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" />
...
<script language="javascript">
function gotoSubmit8_1() {
...
alert(window.event); //use window.event
...
}
</script>
IE&Firefox:
<input name="Button8_2" type="button" value="IE" />
...
<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.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表