2024年4月11日发(作者:)

《firefox与IE 浏览器兼容整理方案》

keywords: javascript;css;firefox;ie;区别

1. ("itemName") 问题

说明:IE下,可以使用("itemName")或

ts["elementName"];

Firefox下,只能使用ts["elementName"].

解决方法:统一使用ts["elementName"].

2.集合类对象问题

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

类对象.

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

3.自定义属性问题

说明:IE下,可以使用获取常规属性的方法来获取自定义属性,也可以使用

getAttribute()获取自定义属性;Firefox下,只能使用getAttribute()获取自

定义属性.

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

("idName")问题

说明:IE下,,可以使用eval("idName")或getElementById("idName")来取得id

为idName的HTML对象;Firefox下只能使用getElementById("idName")来取得

id为idName的HTML对象.

解决方法:统一用getElementById("idName")来取得id为idName的HTML对象.

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

说明:IE下,HTML对象的ID可以作为document的下属对象变量名直接使

用;Firefox下则不能.Firefox下,可以使用与HTML对象ID相同的变量名;IE下

则不能。

解决方法:使用mentById("idName")代替.最

好不要取HTML对象ID相同的变量名,以减少错误;在声明变量时,一律加上var,

以避免歧义.

问题

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

用var关键字来定义常量.

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

属性问题

说明:IE下属性为只读;但是Firefox下属性为读写.

问题

说明:只能在IE下运行,而不能在Firefox下运行,这是因为

Firefox的event只能在事件发生的现场使用. Firefox必须从源处加入event

作参数传递。Ie忽略该参数,用来读取该event。

解决方法:

IE&Firefox:

Submitted(event)"/> …

.x与event.y问题

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

对象有pageX,pageY属性,但是没有x,y属性.

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

event.x或者Firefox下的.

ment问题

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

下,even对象有target属性,但是没有srcElement属性.

解决方法:使用obj(obj = ment ? ment :

;)来代替IE下的ment或者Firefox下的

. 请同时注意event的兼容性问题。

问题

说明:IE或者Firefox2.0.x下,可以使用on或

;Firefox1.5.x下,只能使用on.

解决方法:使用on来代替.

12.模态和非模态窗口问题

说明:IE下,可以通过showModalDialog和showModelessDialog打开模态和非模

态窗口;Firefox下则不能.

解决方法:直接使用(pageURL,name,parameters)方式打开新窗口。

如果需要将子窗口中的参数传递回父窗口,可以在子窗口中使用

来访问父窗口. 例如:var parWin = ;

mentById("Aqing").value = "Aqing";

问题

以下面的frame为例:

(1)访问frame对象:

IE:使用d或者ame来访问这个frame对象.

frameId和frameName可以同名。