欢迎来到天天文库
浏览记录
ID:41566693
大小:60.96 KB
页数:7页
时间:2019-08-27
《Javascript和CSS浏览器兼容总结44377》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、这是我总结多年的一个小文档,主要内容是Javascript和CSS浏览器兼容总结,最近看见冇人咨询浏览器兼容的问题,就贡献出来。并不一定全,有的也可能不准确,比如新出的IE8>Chrome等都没有太多涉及,虽然最近做的一些项目也兼容了IE8、Chrome等,但都没来的及总结进去,后来就忘了…汗。人家—起慢慢完善吧。javascript部分1.document.form.item问题问题:代码中存在document.formName.itemC4itemName^^)这样的语句,不能在FF下运行解决方法:改丿I]document.formName.elements[,,elementName,'
2、]2.集合类对象问题问题:代码中许多集合类対象収用时使用(),IE能接受,FF不能解决方法:改用n作为下标运算,例:documcnt.gctElcmcntsByNamc("inputNamc'')(l)改为document.gctElcmcntsByNamcC3、IIwindow.event;4.HTML对象的id作为对象名的问题问题:在IE中,HTML对象的ID可以作为document的下属対象变量名直接使用,在FF中不能解决方法:使用对象变量时全部用标准的getElementById(“idName”)1.用idName字符串取得対象的问题问题:在IE中,利用eval(“idName”)可以取得id为idNamc的HTML对象,在FF中不能解决方法:用getElementById(uidNameM)代替eval(uidNamen)2.变量名与某HTML对象id和同的问题问题:在FF中,因为对象id不作为HTML对象的名称,所以可以使用与HTML对象4、id相同的变量名,IE中不能解决方法:在声明变罐时,一律加上var,以避免歧义,这样在IE屮亦可正常运行最好不要取与HTML对彖id相同的变量名,以减少错误3.event.x与event.y问题问题:在IE中,event对象有x,y属性,FF中没有解决方法:在FF屮,与event.x等效的是event.pageX,但event.pageXIE'I1没有故采用event.clientX代替event.x,在IE中也有这个变量event.clientX与event.pageX有微妙的差别,就是滚动条要完全一样,可以这样:mX=event.x?event.x:event.pageX;然后用mX代替e5、vent.x4.关于frame问题:在IE中可以用window.testFrame取得该frame,FF中不行解决方法:window.top.document.getElementById(utestFrame^).src='xx.htm'window.top.frameName.location='xx.htrrf5.取得元索的属性在FF中,自己定义的属性必须getAttributeO取得6.在FF屮没有parentElement,parement.children而川parentNode,parentNode.childNodes问题:childNodes的下标的含义在IE和FF中不同,F6、F的childNodcs中会插入空白文木节点解决方法:可以通过node.getElementsByTagName()來回避这个问题问题:当html中节点缺失时,IE和FF对parentNode的解释不同,例如:FF屮input.parentNode的值为form,而DE中input.parentNode的值为空节点问题:FF中节点口己没有removeNode方法解决方法:必须使用如卜方法node.parentNode.removeChild(node)1.const问题问题:在IE中不能使用const关键字解决方法:以va
3、IIwindow.event;4.HTML对象的id作为对象名的问题问题:在IE中,HTML对象的ID可以作为document的下属対象变量名直接使用,在FF中不能解决方法:使用对象变量时全部用标准的getElementById(“idName”)1.用idName字符串取得対象的问题问题:在IE中,利用eval(“idName”)可以取得id为idNamc的HTML对象,在FF中不能解决方法:用getElementById(uidNameM)代替eval(uidNamen)2.变量名与某HTML对象id和同的问题问题:在FF中,因为对象id不作为HTML对象的名称,所以可以使用与HTML对象
4、id相同的变量名,IE中不能解决方法:在声明变罐时,一律加上var,以避免歧义,这样在IE屮亦可正常运行最好不要取与HTML对彖id相同的变量名,以减少错误3.event.x与event.y问题问题:在IE中,event对象有x,y属性,FF中没有解决方法:在FF屮,与event.x等效的是event.pageX,但event.pageXIE'I1没有故采用event.clientX代替event.x,在IE中也有这个变量event.clientX与event.pageX有微妙的差别,就是滚动条要完全一样,可以这样:mX=event.x?event.x:event.pageX;然后用mX代替e
5、vent.x4.关于frame问题:在IE中可以用window.testFrame取得该frame,FF中不行解决方法:window.top.document.getElementById(utestFrame^).src='xx.htm'window.top.frameName.location='xx.htrrf5.取得元索的属性在FF中,自己定义的属性必须getAttributeO取得6.在FF屮没有parentElement,parement.children而川parentNode,parentNode.childNodes问题:childNodes的下标的含义在IE和FF中不同,F
6、F的childNodcs中会插入空白文木节点解决方法:可以通过node.getElementsByTagName()來回避这个问题问题:当html中节点缺失时,IE和FF对parentNode的解释不同,例如:
7、r代替2.body对象FF的body在body标签没有被浏览器完全读入之前就存在,而IE则必须在body完全被读入Z后才存在这会产生在IE下,文档没有载入完时,在body±appendChild会出现空白页面的问题解决方法:—切在body上插入节点的动作,全部在onload后进行3.urlencoding问题:—•般FF无法识别js中的&解决方法:在js屮如果书写url就肓接写&不要写&4.nod
此文档下载收益归作者所有