Bernd: style="color:rgb(255,255,255);

Hallo Forum,

vieleicht kann mir da einer helfen ...
Ich setze in Mozilla in ein DIV folgendes HTML ein (mit innerHTML)
<span style="color:#FFFFFF;">Leer</span>

Lese ich es wieder aus, bekomme ich
"<span style="color:rgb(255,255,255);">Leer</span>" zurück.

Wie bekomme ich den Farbwert wieder in Hexadezimal ???

Überlege schon den string zu zerlegen, die RGB einzelnt in Hex zu konvertieren und dann den String wieder zusammen zu bauen.

Oder gibt es da einen leichteren Ansatz ???

Bernd

PS: Es sind immer andere Texte mit unterschiedlichen Fabwerten ...

  1. Hallo Bernd,

    vieleicht kann mir da einer helfen ...
    Ich setze in Mozilla in ein DIV folgendes HTML ein (mit innerHTML)
    <span style="color:#FFFFFF;">Leer</span>

    Lese ich es wieder aus, bekomme ich
    "<span style="color:rgb(255,255,255);">Leer</span>" zurück.

    Der Frabwert ist eine korrekte CSS-Angabe, solange Du sie nicht außerhalb von CSS benötigst, sehe ich nicht warum Du diesen String umwandeln willst. Also frage ich mal: Wofür brachst Du die Hex-Angabe?

    Gruß aus Berlin!
    eddi

    --
    at, wie er leibt und lebt auf ein Posting
    > > Nein, ich denke nicht.
    gepromptet
    > Das empfiehlt sich aber.
    :))))
    1. Ich arbeite mit den Editor htmlArea. wenn ich die schriftfarbe einfärbe schreibt er <font color="#FFFFFF">Leer</font>.

      Da motzt aber Mozilla mit rum.

      Also das ganze in <span style="color:#FFFFFF"></span> konvertiert.
      Wenn ich aber nun wieder in den Editor gehe bekommt dieser Probleme mit rgb ;-(

      Bernd

      1. Hallo Bernd,

        http://suche.de.selfhtml.org/cgi-bin/such.pl?suchausdruck=HTML-Editor&case=on&feld=alle&index_5=on&hits=alle#Forums-Archiv 2004

        wir haben uns nun heute hier zusammengefunden um von Deinem langjährigem Editor abschied zu nehmen. Er war in wahrer Hingabe seiner Aufgabe nicht mehr gewachsen.

        Einstellungen=>Systemsteuerung=>Software=>htmlArea=>Deinstallieren!

        Möge er in Frieden Ruhen!
        eddi

        --
        at, wie er leibt und lebt auf ein Posting
        > > Nein, ich denke nicht.
        gepromptet
        > Das empfiehlt sich aber.
        :))))
  2. Hi,

    Wie bekomme ich den Farbwert wieder in Hexadezimal ???

    Auseinandernehmen und Umwandeln.

    Oder gibt es da einen leichteren Ansatz ???

    Ja, es genau so lassen. :-)

    Spricht was dagegen?

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
  3. Hallo,

    Überlege schon den string zu zerlegen, die RGB einzelnt in Hex zu konvertieren und dann den String wieder zusammen zu bauen.

    Etwas in dieser Richtung:

    var hex="#",tmp,rgb="color:rgb(255,255,255);";
    tmp=(rgb.substring(rgb.indexOf("(")+1,rgb.indexOf(")"))).split(",");
    for(i=0;i<3;i++)hex+=(tmp[i]*1).toString(16).toUpperCase();
    alert(hex); // #FFFFFF

    Oder gibt es da einen leichteren Ansatz ???

    Einfach so lassen ;-).

    MfG, Thomas

    1. Hallo Thomas,

      schöne Hex-Konvertierung.

      Danke,

      Bernd

      PS: Also doch auseinandernehmen ...
      PSSS: Am liebsten hätte ich ja sowas wie Liste mit allen zu erseztenden Begriffen erstell, duplizieren, Duplikat konvertieren. und dann das eine durch das andere im Text ersetzen.

      Geht bestimmt mit regEx ..., werde mal probieren.

    2. Danke an allen die mir geholfen haben,

      hab mal wieder wasa lernen können.

      Das ist meine aktuelle Lösung:
      function fontToStyle(str){
       str = str.replace(/<font color="/gi,"<span style="color:")
       str = str.replace(/</font>/gi,"</span>")
       return str;
      }

      function styleToFont(str){
       str = str.replace(/<span style="color:/gi,"<font color="")
       str = str.replace(/</span>/gi,"</font>")
       var Suche = /(rgb.+?;)/gi;
       var Ergebnis = str.match(Suche);
       tmpCount = Ergebnis.length;

      for (i=0;i < tmpCount;i++){
        var hex="#"
         tmp = Ergebnis[i].substring(Ergebnis[i].indexOf("(")+1,Ergebnis[i].length-2).split(",");
        for(m=0;m<3;m++){
         hex+=(tmp[m]*1).toString(16).toUpperCase();
        }
       Ergebnis[i]=hex;
       }
       for (i=0;i < tmpCount;i++){
         str = str.replace(/rgb.+?;/,Ergebnis[i]);
       }
       return str;
      }

      Bernd