文档详情

火狐、ie不兼容汇总.doc

发布:2019-03-29约5.45千字共5页下载文档
文本预览下载声明
下面是一些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
显示全部
相似文档