zl程序教程

您现在的位置是:首页 >  前端

当前栏目

firefox火狐浏览器与与ie兼容的2个问题总结

浏览器 问题 总结 兼容 IE firefox 火狐
2023-06-13 09:14:23 时间
1:rules与cssRules区别:
复制代码代码如下:

functionaddCSSRule(css,key,value){
//varcss=document.styleSheets[document.styleSheets.length-1];
if(navigator.userAgent.indexOf("Firefox")>0)
{
css.insertRule(key+"{"+value+"}",css.cssRules.length)
}
else
{
css.addRules(key,value);
}
}
functionremoveCSSRule(key){
for(vari=0;i<document.styleSheets.length;i++){
varcss=document.styleSheets[i];
navigator.userAgent.indexOf("Firefox")>0?
(function(){
for(varj=0;j<css.cssRules.length;j++){
if(css.cssRules[j].selectorText==key){
css.deleteRule(j);
}
}
})():
(css.removeRule(key));
}
}

我是这样加了一个方法解决这个问题的。。
2:火狐和ie中获得背景色问题(getComputedStyle与currentStyle的区别)
复制代码代码如下:

functiongetCurrentStyle(oElement){
if(navigator.userAgent.indexOf("Firefox")>0){
varrgbstr=document.defaultView.getComputedStyle(oElement,null).backgroundColor;
varstrR;
if(rgbstr.toString().indexOf("(")>0&&rgbstr.toString().indexOf(")")>0)
{
strR=rgbstr.toString().substring(parseInt(rgbstr.toString().indexOf("(")+1),rgbstr.toString().indexOf(")")).split(",");
}
returntoHexColor(strR[0],strR[1],strR[2]).substring(1);
}
else{
returnoElement.currentStyle.backgroundColor.trim().substring(1);
}
}

复制代码代码如下:
functiontoHexColor(r,g,b){
varhex="#";
varhexStr="0123456789ABCDEF";
low=r%16;
high=(r-low)/16;
hex+=hexStr.charAt(high)+hexStr.charAt(low);
low=g%16;
high=(g-low)/16;
hex+=hexStr.charAt(high)+hexStr.charAt(low);
low=b%16;
high=(b-low)/16;
hex+=hexStr.charAt(high)+hexStr.charAt(low);
returnhex;
}

记住火狐获得的rgbstr是rgb的因此我还要转成16进制的。我也整理了一个很笨的转换方法再上面望打击拍砖!