Get background color from IE in rgb format?

T

teresni

We've got some JavaScript code that gets the current background color.
It works, but Netscape returns it in rgb format, while IE returns it as
the color
text name (e.g., 'white'). We need to do some math calculations on the
color,
so I want the rgb values. How can I get IE to return the background
color in rgb
format, or how do I convert the text color to its rgb value? Thanks!
 
H

Hal Rosser

Here's a link that may help
http://web.njit.edu/~kevin/rgb.txt.html

We've got some JavaScript code that gets the current background color.
It works, but Netscape returns it in rgb format, while IE returns it as
the color
text name (e.g., 'white'). We need to do some math calculations on the
color,
so I want the rgb values. How can I get IE to return the background
color in rgb
format, or how do I convert the text color to its rgb value? Thanks!

Here's a link that may help
http://web.njit.edu/~kevin/rgb.txt.html
HTH
Hal
 
T

teresni

Thanks, but I don't want to hardcode the rgb values in my code. I was
hoping for some attribute I could access or parameter I could pass to
an existing method that would return the current background color as an
rgb value rather than as the color name.
 
M

Marc

We've got some JavaScript code that gets the current background color.
It works, but Netscape returns it in rgb format, while IE returns it as
the color
text name (e.g., 'white'). We need to do some math calculations on the
color,
so I want the rgb values. How can I get IE to return the background
color in rgb
format, or how do I convert the text color to its rgb value? Thanks!

Only works for Internet Explorer!!!!!!!!!!

Create a table with it's visibility style set to hidden, set this tables
bgcolor
to the named color:
<table id="temptable" bgcolor="indigo"><tr><td></td></tr></table>

then request back the color:
document.getElementById("temptable").bgColor

it should return a hex color...

full sample:

<html>
<head>
<style>
#temptable{visibility:hidden}
</style>
<script>
var hexChars = "0123456789ABCDEF";
function Dec2Hex (Dec) {
// this function isn't used in this sample
var a = Dec % 16;
var b = (Dec - a)/16;
hex = "" + hexChars.charAt(b) + hexChars.charAt(a);
return hex;
}
function Hex2Dec(HexVal){
HexVal = HexVal.toUpperCase();
var DecVal = 0;
var temp = HexVal.substring(0,1);
DecVal = (hexChars.indexOf(temp) * 16);
temp = HexVal.substring(1);
DecVal += hexChars.indexOf(temp);
return DecVal;
}

function test(){
var HexString = document.getElementById("temptable").bgColor;
var r = Hex2Dec(HexString.substring(1,3));
var g = Hex2Dec(HexString.substring(3,5));
var b = Hex2Dec(HexString.substring(5,7));
alert("hex: " + HexString + "\nrgb: " + r + " " + g + " " + b);
}
</script>
</head>
<body onclick="test()">

<table id="temptable" bgcolor="indigo"><tr><td></td></tr></table>

</body>
</html>
 
E

Evertjan.

Marc wrote on 21 mei 2006 in comp.lang.javascript:
function Hex2Dec(HexVal){
HexVal = HexVal.toUpperCase();
var DecVal = 0;
var temp = HexVal.substring(0,1);
DecVal = (hexChars.indexOf(temp) * 16);
temp = HexVal.substring(1);
DecVal += hexChars.indexOf(temp);
return DecVal;
}

function Hex2Dec(x){
var y = 0, z;
for(var i=0;i<x.length;i++){
z = x.toUpperCase().charCodeAt(i)
y = 16*y+z-((z<58)?48:55)
}
return y;
}

[works for any length hex string within reason, even empty string]

==================

function colorhex2dec(x){
return x.replace(/(..)/g,function($1){return Hex2Dec($1)+' '})
}

alert(colorhex2dec('abcd10')) // 171 205 16
 
M

Marc

function Hex2Dec(x){
var y = 0, z;
for(var i=0;i<x.length;i++){
z = x.toUpperCase().charCodeAt(i)
y = 16*y+z-((z<58)?48:55)
}
return y;
}

[works for any length hex string within reason, even empty string]

==================

function colorhex2dec(x){
return x.replace(/(..)/g,function($1){return Hex2Dec($1)+' '})
}

alert(colorhex2dec('abcd10')) // 171 205 16

Ah! nice... ;-)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,479
Members
44,899
Latest member
RodneyMcAu

Latest Threads

Top