火狐、ie不兼容汇总.doc
文本预览下载声明
下面是一些Javascript的IE和Firefox(火狐)兼容性的常用例子
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)来取得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 则不能。解决方法:使用document.getElementById(idName)代替document.idName.最好不要取HTML对象ID相同的变量名,以减少错误;在声明变量时,一律加上var,以避免歧义. 6.const问题Firefox 可以使用const关键字或var关键字来定义常量;
IE 只能使用var关键字来定义常量. 解决方法:统一使用var关键字来定义常量. 7.input.type属性问题
IE input.type属性为只读
Firefox input.type属性为读写. 8.window.event问题window.event只能在IE下运行,而不能在Firefox下运行,这是因为Firefox的event只能在事件发生的现场使用. Firefox必须从源处加入event作参数传递.Ie忽略该参数,用window.event来读取该event。解决方法: if( typeof(window.event)==undefined ){
eval(var event = new Object;); } 9.event.x与event.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 event对象有srcElement属性,但是没有target属性
Firefox even对象有target属性,但是没有srcElement属性. 解决方法:使用obj(obj = event.srcElement ? event.srcElement : event.target;)
来代替IE下的event.srcElement
或者Firefox下的event.target.
请同时注意event的兼容性问题。11.window.location.href问题IE或者Firefox2.0.x 可以使用window.location或window.location.href;
Firefox1.5.x 只能使用window.location. 解决方法:使用window.location来代替window.location.href. 12.模态和非模态窗口问题IE 可以通过showModalDialog和showModelessDialog打开模态和非模态窗口;
Fire
显示全部