Jeg fandt et script hvor man indtaster RGB værdien af farven, delt op på 3 textboxe, og så konvertede den dem til Hex værdien.
Det virkede fint i Internet Explorer, men i Opera viste den RGB værdier i formatet "RGB(XXX,XXX,XXX)".
Jeg har modificeret scriptet, så det nu checker om de 3 første tegn er "rgb" (lowercase). Hvis de er, udføres konverteringskoden, og mycolor får den rigtige værdi. Ellers har mycolor den rigtige værdi.
Lige meget hvad, lægges mycolor værdien over i textboxen "TekstFarvekode".
Det skal lige siges at, da jeg ikke er en haj når det kommer til JavaScript, er der sikkert en eller anden måde at optimere scriptet på.
Det kan roenving sikkert :)
Jeg håber at det er et svar du kan bruge, og lægger derfor dette svar. Hvis ikke, afviser du bare.
*** Her er scriptet:
<SCRIPT LANGUAGE="JavaScript">
<!--
// This script came from the Web-Development.Com JavaScript Site
// Located at
http://www.web-development.com/ // Written by Mike Brittain (brittaim@lafayette.edu)
//
// Edited by theSurfer. Credits: to Mike Brittain.
function farve(mycolor)
{
if (mycolor.toLowerCase().substring(0,3) == "rgb") {
mycolor = mycolor.substring(4,mycolor.length - 1)
mycolor = mycolor.replace(/ /g,"");
var r = mycolor.substring(0,mycolor.indexOf(","))
mycolor = mycolor.substring(mycolor.indexOf(",") + 1, mycolor.length)
var g = mycolor.substring(0,mycolor.indexOf(","))
mycolor = mycolor.substring(mycolor.indexOf(",") + 1, mycolor.length)
var b = mycolor.substring(0, mycolor.length)
var RGB = new Array(256);
var k = 0;
var hex = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F");
for (i = 0; i < 16; i++) {
for (j = 0; j < 16; j++) {
RGB[k] = hex[i] + hex[j];
k++;
}
}
mycolor = "#" + RGB[r] + RGB[g] + RGB[b];
}
document.forms['FORMNAVN'].TekstFarvekode.value=mycolor;
}
//-->
</SCRIPT>
<table>
<TD style="background-color: #FFAA55" onClick="farve(this.style.backgroundColor);">s</TD>
</table>
<form name="FORMNAVN">
<input type="text" name="TekstFarvekode">
<form>