菜单

一些Javascript的IE和Firefox兼容性的问题总结及常用例子_javascript技巧_脚本之家澳门太阳娱乐手机登录

2020年2月6日 - 澳门太阳娱乐手机登录

1. document.formName.item 问题
表达:IE下,能够使用document.formName.item或document.formName.elements[“elementName”];
Firefox下,只好动用document.formName.elements[澳门太阳娱乐手机登录,”elementName”].
化解措施:统一运用document.formName.elements[“elementName”].
2.会集类对象难题
表达:IE下,能够选取(卡塔尔国或[]收获集结类对象;Firefox下,只可以动用[]得到集结类对象.
消亡办法:统生龙活虎接收[]收获集结类对象. 3.自定义属性难点
表明:IE下,可以应用获取常规属性的措施来赢得自定义属性,也得以选择getAttribute(State of Qatar获取自定义属性;Firefox下,只好接纳getAttribute(卡塔尔获取自定义属性.
消逝办法:统一通过getAttribute(卡塔尔获取自定义属性. 4.eval问题
表明:IE下,,能够接纳eval或getElementById来博取id为idName的HTML对象;Firefox下只能使用getElementById来获得id为idName的HTML对象.
消除办法:统风华正茂用getElementById来获得id为idName的HTML对象.
5.变量名与某HTML对象ID相像的标题
表达:IE下,HTML对象的ID能够视作document的下直面象变量名直接行使;Firefox下则无法.Firefox下,能够应用与HTML对象ID相通的变量名;IE下则不可能。
解决措施:使用document.getElementById替代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。
撤销方法: IE&Firefox: Submitted”/> …

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展开模态和非模态窗口;Firefox下则无法.
消灭方法:间接接纳window.open(pageU福特ExplorerL,name,parameters卡塔尔情势打开新窗口。
假若急需将子窗口中的参数字传送递回父窗口,能够在子窗口中使用window.opener来访问父窗口.
比方:var parWin = window.opener; parWin.document.getElementById.value =
“Aqing”; 13.frame问题 以下边包车型客车frame为例: 访问frame对象:
IE:使用window.frameId也许window.frameName来访谈这一个frame对象.
frameId和frameName能够同名。
Firefox:只可以使用window.frameName来访谈这么些frame对象.
此外,在IE和Firefox中都能够使用window.document.getElementById来访谈那么些frame对象.
切换frame内容:
在IE和Firefox中都能够应用window.document.getElementById.src =
“xxx.html”或window.frameName.location = “xxx.html”来切换frame的内容.
就算要求将frame中的参数传回父窗口(注意不是opener,而是parent
frameState of Qatar,能够在frme中运用parent来拜访父窗口。比如:parent.document.form1.filename.value=”Aqing”;
14.body问题
Firefox的body在body标签没有被浏览器完全读入早前就存在;而IE的body则必需在body标签被浏览器完全读入之后才存在.
15. 事件委托方法 IE:document.body.onload = inject; //Function
inject(卡塔尔(قطر‎在这里后面已被实现 Firefox:document.body.onload = inject(卡塔尔; 16.
firefox与IE的父成分的界别
IE:obj.parentElement
firefox:obj.parentNode 化解措施:
因为firefox与IE都扶植DOM,因而使用obj.parentNode是不利选拔.
17.cursor:hand VS cursor:pointer firefox不扶持hand,但ie支持pointer
消亡方式: 统意气风发行使pointer
18.innerText在IE中能符合规律干活,可是innerText在FireFox中却不行.
需用textContent。
解决方式: if(navigator.appName.indexOf{
document.getElementById.innerText = “my text”; } else{
document.getElementById.textContent = “my text”; } 19.
Fire福克斯中设置HTML标签的style时,所有地点性和字体尺寸的值必需后跟px。那个ie也是支撑的。

20. ie,firefox乃至其余浏览器对于 table
标签的操作都各不相像,在ie中不许对table和tr的innerHTML赋值,使用js扩张四个tr时,使用appendChild方法也随意用。

解决办法: //向table追加贰个空行: var row = otable.insertRow; var cell
= document.createElement; cell.innerHTML = ” “; cell.className = “XXXX”;
row.appendChild; 21. padding 问题 padding 5px 4px 3px 1px
FireFox不能解释简写, 必须改成 padding-top:5px; padding-right:4px;
padding-bottom:3px; padding-left:1px; 22. 解除ul、ol等列表的缩进时
样式应写成:list-style:none;margin:0px;padding:0px;
此中margin属性对IE有效,padding属性对FireFox有效 23. CSS透明
IE:filter:progid:DXImageTransform.Microsoft.Alpha。 FF:opacity:0.6。
24. CSS圆角 IE:不协理圆角。 FF:
-moz-border-radius:4px,可能-moz-border-radius-topleft:4px;-moz-border-
radius-topright:4px;-moz-border-radius-bottomleft:4px;-moz-border-
radius- bottomright:4px;。 25. CSS双线大喜大悲边框 IE:border:2px
outset;。 FF: -moz-border-top-colors: #d4d0c8
white;-moz-border-left-colors: #d4d0c8
white;-moz-border-right-colors:#404040
#808080;-moz-border-bottom-colors:#404040 #808080; 26.
对select的options会集操作

枚举成分除了[]外,SelectName.options.item(卡塔尔也是能够的,
此外SelectName.options.length,
SelectName.options.add/remove都能够在三种浏览器上接收。注意在add后赋值成分,否则会战败。
27. XMLHTTP的区别 //mf if (window.XMLHttpRequest) //mf { xmlhttp=new
XMLHttpRequest() xmlhttp.onreadystatechange=xmlhttpChange xmlhttp.open
xmlhttp.send } //ie else if // code for IE { xmlhttp=new ActiveXObject
if { xmlhttp.onreadystatechange=xmlhttpChange xmlhttp.open
xmlhttp.send() } } } 28. innerHTML的区别 Firefox不补助innerHTML,
消亡办法能够如下 rng = document.createRange(State of Qatar; el =
document.getElementById; rng.setStartBefore; htmlFrag =
rng.createContextualFragment; while //毁灭原有内容,参加新内容
el.removeChild; el.appendChild;

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图