Fabian: Hintergrund bei einzelnem Zeichen (Fliesstext) dynam. verändern

Hallo,

ich komme nochmal auf emin Thema von gestern zurück.

Eine einfache Variante, den Hintergrund eines Zeichens im Fliesstext zu verändern, ist:

<span onMouseOver="Mach_was(this)"> a </span>

Ich kann mir sogar sparen, eine id zu vergeben, wenn ich "this" verwende. Prima. :-)

Wenn ich nun die JavaSript-Funktion implementiere:

function Mach_was(object)
{
  alert (object.style['color'] );

alert (object.sytle['background-color'] );

}

dann liefert mir das erste alert() die richtige Farbe des Objekts, das zweite alert() sagt aber "undefined".

Wieso geht das nicht? Kann man gar nicht auf alle CSS-Elemente eines Objektes zugreifen?

Leider habe ich auch nicht die Objektspezifikation vom InternetExplorer oder vom Feuerfuchs etc. auswendig gelernt. Wie finde ich heraus, welche Unterobjekte es gibt und wie ich sie ansprechen kann? Man müsste sich doch irgendwie eine Objekthierarchie per Text ausgeben lassen können, oder?

Vielen Dank und Gruss,
Fabian

  1. Hallo Fabian.

    function Mach_was(object)

    {
      alert (object.style['color'] );

    alert (object.sytle['background-color'] );

    }

    
    >   
    > dann liefert mir das erste alert() die richtige Farbe des Objekts, das zweite alert() sagt aber "undefined".  
    >   
    > Wieso geht das nicht? Kann man gar nicht auf alle CSS-Elemente eines Objektes zugreifen?  
      
    Einmal abgesehen vom Tippfehler hast du nicht beachtet, wie <http://de.selfhtml.org/javascript/objekte/style.htm#style_eigenschaften@title=CSS-Eigenschaften in JS> umgesetzt werden.  
      
      
    Einen schönen Samstag noch.  
      
    Gruß, Ashura  
    
    -- 
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|  
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“  
    [[HTML Design Constraints: Logical Markup](http://www.w3.org/History/19921103-hypertext/hypertext/WWW/MarkUp/HTMLConstraints.html)]
    
    1. Au weia!

      Danke für den Tipp! Hab ich im Selfhtml nicht gefunden

      Gruss,
      Fabian

    2. Eine Frage noch:

      Warum dauert das jetzt so lange?? Ich habe jetzt den gleichen Effekt wie beim a:hover. Es dauert 2-3 Sekunden, bevor die Hintergrundfarbe geändert wird. Bei der Textfarbe geht das fast 20mal schneller.

      weisst Du warum?

      1. Hallo Fabian.

        Warum dauert das jetzt so lange?? Ich habe jetzt den gleichen Effekt wie beim a:hover. Es dauert 2-3 Sekunden, bevor die Hintergrundfarbe geändert wird. Bei der Textfarbe geht das fast 20mal schneller.

        Bei welchem Browser und wie *genau* sieht dein Code aus?

        Einen schönen Samstag noch.

        Gruß, Ashura

        --
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
        „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
        [HTML Design Constraints: Logical Markup]
        1. Hallo Ashura,

          danke für Deine Hilfe schon mal.

          Habe den Code unter der unten angegebenen Adresse online gestellt. Ich benutze den IE 6.0 unter XP

          Sobald Du in der JavaScript-Funktion "backgroundColor" durch "color" ersetzt, läuft es rattenschnell. Aber ich will ja den Hintergrund verändern.

          Gruss,
          Fabian

          1. Hallo Fabian.

            Habe den Code unter der unten angegebenen Adresse online gestellt. Ich benutze den IE 6.0 unter XP

            Sobald Du in der JavaScript-Funktion "backgroundColor" durch "color" ersetzt, läuft es rattenschnell. Aber ich will ja den Hintergrund verändern.

            Bei mir dauert es sogar 7 Sekunden. Woran es liegt, weiß ich leider nicht, aber vielleicht tritt es nicht auf, wenn du style['backgroundColor'] durch style.backgroundColor (also die alternative Kurzschreibweise) ersetzt.

            Ansonsten musst du wohl, wenn es im IE funktionieren soll, an Stelle der span- a-Elemente verwenden, bei welchen der IE wenigstens :hover versteht.

            Einen schönen Samstag noch.

            Gruß, Ashura

            --
            sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
            „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
            [HTML Design Constraints: Logical Markup]