Franz Beckenbauer: getComputedStyle im FF fehlerhaft?

liebe WM-Verlierer,

warum wird mir im Firefox ein falscher Wert bei der Abfrage von Styles mit getComputedStyle angezeigt?

Beispiel:

getComputedStyle(mein_objekt,"")["backgroundColor"]

zeigt im FF rgb(0,0,0) und im Opera (korrekt!) cccc99.

wie kommt das? Auch andere Syntax, wie z.B. getComputedStyle(mein_objekt,"").getPropertyValue("background-color") ändert da nichts dran.

grüzi aus Bayern

  1. Hallo,

    warum wird mir im Firefox ein falscher Wert bei der Abfrage von Styles mit getComputedStyle angezeigt?

    Beispiel:

    getComputedStyle(mein_objekt,"")["backgroundColor"]

    http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/css.html#CSS-ViewCSS
       getComputedStyle(mein_objekt, null)["backgroundColor"]

    zeigt im FF rgb(0,0,0) und im Opera (korrekt!) cccc99.

    Bei mir nicht. Bei einem Element mit background-color:#CC9; bekomme ich rgb(204, 204, 153).

    viele Grüße

    Axel

    1. Bei mir nicht.

      das freut mich für Dich! nur: warum ist es bei mir so?

      1. ahhh...,

        I hob den Fehler gfunden ähhh, da hom die Verantwortlichen mir wohl wieder net richtig zugearbeitet ähhh das muß I in einer internen Konferenz dann a mo klären. Da müssen Konsequenzen folgen ähhh... schaun mer ma.

      2. hi,

        Bei mir nicht.
        das freut mich für Dich! nur: warum ist es bei mir so?

        Hast du den Aufruf entsprechend korrigiert?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
      3. Hallo,

        das freut mich für Dich! nur: warum ist es bei mir so?

        *g* Wegen des Fehlers in Zeile 5 Deines JavaScript Codes.

        Im Ernst: woher soll das jemand wissen, wenn Du kein Beispiel bringst, bei dem der FF dieses seltsame Verhalten zeigt. Üblicherweise zeigt er es jedenfalls nicht.

        viele Grüße

        Axel

  2. Hallo Franz,

    warum wird mir im Firefox ein falscher Wert bei der Abfrage von Styles mit getComputedStyle angezeigt?

    Er ist nicht falsch, er ist umgerechnet. Firefox liefert immer die rgb-Notation.

    Auf der allwissenden Müllhalde kompostiert übrigens ein browserübergreifendes Beispiel.

    Grüße
     Roland

    1. hi,

      warum wird mir im Firefox ein falscher Wert bei der Abfrage von Styles mit getComputedStyle angezeigt?

      Er ist nicht falsch, er ist umgerechnet. Firefox liefert immer die rgb-Notation.

      Nach welcher Formel oder Vorschrift wird denn da "umgerechnet"?

      zeigt im FF rgb(0,0,0) und im Opera (korrekt!) cccc99.

      Klar, Vorschriften die cccc99 auf rgb(0,0,0) abbilden, liessen sich sicher eine Menge finden - nur an der Existenz einer in diesem Zusammenhang auch als sinnvoll zu bezeichnenden habe ich Zweifel.

      scnr,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. Nach welcher Formel oder Vorschrift wird denn da "umgerechnet"?

        ganz einfach: Hex-Wert*0, hihi...

  3. es geht nicht korrekt. Ich hab jetzt mal ein kleines komplettes Beispiel extrahiert. Probiert es aus. Im FF wird die border-color nicht ausgelesen. Andere Probleme gibts auch, aber davon vielleicht später.

    SCHNIPP*******************************************************

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html><head><title>Untitled</title>

    <style type="text/css">
     h1 {color:#990000; background-color:#aaaacc; border:solid 3px #952685}
    </style>

    <script type="text/javascript">

    function getStyle(obj, detail)
    {
       var eigenschaftswert;

    if (window.getComputedStyle)
       {
          var styledeclaration = window.getComputedStyle(obj, null);
          eigenschaftswert = styledeclaration.getPropertyValue(detail);
       }

    return eigenschaftswert;
    }

    function zeigeStyles(obj)
    {
       var detailSammlung = ["color", "background-color", "border-color"];
       var farbensammlung = [];

    for(var detail in detailSammlung)
       {
          tmpDetail = detailSammlung[detail];
          farbensammlung[tmpDetail] = getStyle(obj, tmpDetail)
       }

    for(farbe in farbensammlung)
       document.getElementById("ausgabe").innerHTML += farbe + ": " + farbensammlung[farbe] + "<br>"
    }

    </script>
    </head>

    <body>
    <h1 onclick="zeigeStyles(this)">hallo</h1>

    <div id="ausgabe"></div>

    </body>
    </html>

    SCHNAPP*******************************************************

    1. Hallo,

      es geht nicht korrekt. Ich hab jetzt mal ein kleines komplettes Beispiel extrahiert. Probiert es aus. Im FF wird die border-color nicht ausgelesen.

      Ja, das ist offensichtlich ein Bug. Es betrifft offenbar alle Sammeleigenschaften, wie z.B. background, border, border-color, border-style, font ..., die nicht zurückgegeben werden.

      Man muss halt gezielter fragen nach background-color, background-image, border-top-color, border-top-style, font-size ...

      viele Grüße

      Axel

      1. Hallo,

        es geht nicht korrekt. Ich hab jetzt mal ein kleines komplettes Beispiel extrahiert. Probiert es aus. Im FF wird die border-color nicht ausgelesen.
        Ja, das ist offensichtlich ein Bug.

        https://bugzilla.mozilla.org/show_bug.cgi?id=42417
        Es ist ein Bug.

        viele Grüße

        Axel

        1. wann kommt denn der erste bug-freie Browser auf den Markt? Da könnte man sich dann doch einen Bugtracker sparen ;-)

          1. Hallo,

            wann kommt denn der erste bug-freie Browser auf den Markt?

            Wenn Gott unsere Programmiersprachen gelernt hat. ;-)

            Da könnte man sich dann doch einen Bugtracker sparen ;-)

            Ja, der wäre dann Blasphemie.

            viele Grüße

            Axel

      2. Hallo Axel,

        Ja, das ist offensichtlich ein Bug. Es betrifft offenbar alle Sammeleigenschaften

        Bug 137686, created 2002-07-17, Target Milestone: Future.

        Das Übliche eben.

        Grüße
         Roland