firefox火狐浏览器与与ie兼容的2个问题总结
firefox火狐浏览器与与ie兼容的2个问题总结
发布时间:2016-12-30 来源:查字典编辑
摘要:1:rules与cssRules区别:复制代码代码如下:functionaddCSSRule(css,key,value){//varcss...

1:rules与cssRules区别:

复制代码 代码如下:

function addCSSRule(css,key,value){

//var css = document.styleSheets[document.styleSheets.length-1];

if(navigator.userAgent.indexOf("Firefox")>0 )

{

css.insertRule(key+"{"+value+"}", css.cssRules.length)

}

else

{

css.addRules(key,value);

}

}

function removeCSSRule(key){

for(var i = 0; i < document.styleSheets.length; i++){

var css = document.styleSheets[i];

navigator.userAgent.indexOf("Firefox")>0 ?

(function(){

for(var j = 0; j < css.cssRules.length; j++){

if(css.cssRules[j].selectorText==key){

css.deleteRule(j);

}

}

})() :

(css.removeRule(key)) ;

}

}

我是这样加了一个方法解决这个问题的。。

2:火狐和ie中获得背景色问题(getComputedStyle与currentStyle的区别)

复制代码 代码如下:

function getCurrentStyle(oElement) {

if(navigator.userAgent.indexOf("Firefox")>0 ){

var rgbstr=document.defaultView.getComputedStyle(oElement,null).backgroundColor;

var strR;

if(rgbstr.toString().indexOf('(')>0 && rgbstr.toString().indexOf(')')>0)

{

strR= rgbstr.toString().substring(parseInt(rgbstr.toString().indexOf('(')+1),rgbstr.toString().indexOf(')')).split(',');

}

return toHexColor(strR[0],strR[1],strR[2]).substring(1);

}

else{

return oElement.currentStyle.backgroundColor.trim().substring(1);

}

}

复制代码 代码如下:

function toHexColor(r,g,b){

var hex='#';

var hexStr = '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);

return hex;

}

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

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类