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可以同名。


发布评论