简体   繁体   中英

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, ie:

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

.... it would return backgroundColor in FF, Chrome.. but not in Internet 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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM