开发者

how can i pass a parameters to a function to get current Style

Good day, I wonder how to get currentStyle in IE, passing parameters to an function argument like this:

function test(el,value){
  return document.getElementById(el).currentStyle[value];
}

if i'd use a similar function to get Style from Firefox, Chrome and so on, it would result.

using a function like this:

function test(el,value){
  return getComputedStyle(document.getElementById(obj))[value];
}

, where value is the element property like backgroundColor, i.e:

alert(test('ObjectId','backgroundColor'));

.... it would return backgroundColor in FF, Chrome.. but not in Intern开发者_JAVA技巧et Explorer

What r possibles solutions..?

Thnx..

please i'm not looking for a jQuery soluction...


Here what I use to retrieve a style property value

function getStyle(el,sProp,toInt){
    var elem = el;
    if (elem.currentStyle) {
       return toInt 
              ? parseInt(elem.currentStyle[sProp],10) 
              : elem.currentStyle[sProp] || 0;
    } else if (window.getComputedStyle) {
        var compStyle = window.getComputedStyle(elem, null)[sProp];
        return toInt ? parseInt(compStyle,10) : compStyle || 0;
    }
    return String(elem.style[sProp]||0);
}


This is (sadly) very complex.

I have written a browser independent resolver but I can't share it with you.

Unless you are writing your own framework I have to ask, why do you want to be able to resolve everything? Is there a specific property (or some properties) you want? Because that could be a lot easier.

If you just want the background color then .style.backgroundColor is probably sufficient.

Also, there is a bug in your example script:

alert(test('ObjectId'),'backgroundColor');

Should be:

alert(test('ObjectId','backgroundColor'));

Not the first time I made the same mistake ;) - took me half a day to find it

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜