Bastian T.: REPOST: Schriftfarbe in Tabellenzelle ändern.

Servus!

Da die diversen Hilfestellungen aus dem Posting von gestern nicht gefruchtet haben und meiner Meinung nach auch etwas durcheinander geraten sind, hier noch einmal eine geordnete zusammengefasste Version:

Vielleicht noch ein bißchen was zum Sinn des ganzen:
Ich will in dem Menü dem Benutzer zeigen wo er sich gerade befindet und deswegen, soll der Link solange rot sein, bis ein anderer aufgerufen wird. Danach soll er wieder schwarz sein, geht also nicht mit link:visited. Bin aber für Alternativen dankbar.

########Funktion:
function linkin(id,target) {
document.getElementById(id).style.color = "#FF0000";
window.parent.frames[1].location.href = target;
}

########Funktionsaufruf
<td id="link_h1"><a href="home1.htm" onclick="linkin('link_h1','home1.htm');return false">Willkommen</a></td>

Die Übergabe an den anderen Frame funktioniert prima, aber das mit der Farbe wird konsequent ignoriert. Fehlermeldung gibt es nicht, von daher STEHE ICH KURZ VOR SUIZID!

bdt
Bastian

--------------------------------
It took years to climb a mountain,
but seconds to fall.

  1. Hallo Bastian,

    Hast du mal versucht die id dem Link zuzuordnen?

    <td><a href="home1.htm" id="link_h1" onclick="linkin(this.id,this.href);return false">Willkommen</a></td>

    Gruß, Jan

    1. Servus

      Hast du mal versucht die id dem Link zuzuordnen?

      <td><a href="home1.htm" id="link_h1" onclick="linkin(this.id,this.href);return false">Willkommen</a></td>

      Hast du? Hab es gerade mal ausprobiert. Hab auch alles anderes ausprobiert, was aber vom IE6 geflissentlich ignoriert wird. Gebe auf. (Was ich zutiefst verabscheue) Aber wenn ich mich noch länegr hier festbeiße, wird der Spaß einfach zu teuer.

      Habt Dank, ihr alle da draußen.

      bdt
      Bastian

      --------------------------------
      It took years to climb a mountain,
      but seconds to fall.

      1. Hallo,

        Hast du?

        Vorhin nicht, habe vermutet, daß es so ginge.
        Hab es jetzt allerdings mal getestet. Die Linkfarbe hat sich bei mir (Mozilla 1.2.1, IE 5.0, Opera 7.01) schon verändert. Die Links blieben natürlich, nachdem sie das erstemal angeklickt wurden, immer rot.

        So funktioniert es bei mir in allen Borowsern, die ich getestet habe, einwandfrei:

        <script type="text/javascript">
        var prev_id = false;
        function linkin(id,target) {
          if (prev_id)
            document.getElementById(prev_id).style.color = "#000";
          prev_id = id;
          document.getElementById(id).style.color = "#FF0000";
          window.parent.frames[1].location.href = target;
        }
        </script>

        Hab es gerade mal ausprobiert. Hab auch alles anderes ausprobiert, was aber vom IE6 geflissentlich ignoriert wird.

        Seltsam, wenn es sogar der IE5 macht. Hast du mal mit einem anderen Browser getestet?

        Gruß, Jan

  2. Hallo,

    Vielleicht noch ein bißchen was zum Sinn des ganzen:
    Ich will in dem Menü dem Benutzer zeigen wo er sich gerade befindet und deswegen, soll der Link solange rot sein, bis ein anderer aufgerufen wird. Danach soll er wieder schwarz sein, geht also nicht mit link:visited. Bin aber für Alternativen dankbar.

    So langsam verstehe ich Dein Problem. Durch den geposteten Code war das aber etwas diffus beschrieben.

    Du suchst offenbar etwas in dieser Richtung: http://forum.de.selfhtml.org/archiv/2003/1/36616/#m200552. Struppi hat das noch etwas verschlankt: http://forum.de.selfhtml.org/archiv/2003/1/36616/#m200552.

    MfG, Thomas

    1. [Nachtrag:]

      Du suchst offenbar etwas in dieser Richtung: http://forum.de.selfhtml.org/archiv/2003/1/36616/#m200552.

      Der erste Link sollte http://www.styleassistant.de/tips/beispiel15a.htm sein.

      MfG, Thomas

  3. Hi,

    ########Funktion:
    function linkin(id,target) {
    document.getElementById(id).style.color = "#FF0000";
    window.parent.frames[1].location.href = target;
    }
    ########Funktionsaufruf
    <td id="link_h1"><a href="home1.htm" onclick="linkin('link_h1','home1.htm');return false">Willkommen</a></td>

    Welchen Browser nimmst du denn? die Farbe der Tabellenzelle zu ändern geht vermutlich nicht, versuchs mal so:

    <td><a id="link_h1" href="home1.htm" onclick="linkin('link_h1','home1.htm');return false">Willkommen</a></td>

    Desweiteren sehen Browser ohne DOM alt aus, die machen dass generell nicht.

    Die Übergabe an den anderen Frame funktioniert prima, aber das mit der Farbe wird konsequent ignoriert. Fehlermeldung gibt es nicht, von daher STEHE ICH KURZ VOR SUIZID!

    Wer wird denn gleich ins Gras beißen ;-), Kopf hoch

    Gruß,
    ueps

  4. Vielleicht noch ein bißchen was zum Sinn des ganzen:
    Ich will in dem Menü dem Benutzer zeigen wo er sich gerade befindet und deswegen, soll der Link solange rot sein, bis ein anderer aufgerufen wird. Danach soll er wieder schwarz sein, geht also nicht mit link:visited. Bin aber für Alternativen dankbar.

    Dazu musst du dir irgendwie merken, welcher Zustand gerade der aktuelle ist, das hat mit visited (wie du schon gemerkt hast) nichts zu tun.

    Da ich gerade solch ein Problem hinter mir hatte, kann ich dir erstmal nur raten, lieber deine Seiten ordentlich zu markieren, statt den Menüpunkt, das ist einfacher. Wir habe dieses Projekt einfach gecancelt, da die Designerwünsche zu umfangreich wurden, um diese Site vernünftig zu erstellen (es beinhaltete noch mehr Schnick Schnack und die Designerin war nicht abzubringen von diesem überflüssigen Schrott).

    ########Funktion:
    function linkin(id,target) {
    document.getElementById(id).style.color = "#FF0000";
    window.parent.frames[1].location.href = target;
    }

    ########Funktionsaufruf
    <td id="link_h1"><a href="home1.htm" onclick="linkin('link_h1','home1.htm');return false">Willkommen</a></td>

    Besser (für dich, da einfacher zu warten) wäre es so:

    <td id="link_h1"><a href="home1.htm" target="targetFrameName" onclick="linkin('link_h1');">Willkommen</a></td>

    Da die Linkfunktion auch ohne JS funktioniert. Falls du darauf verzichten kannst, Netscape 4.x zu unterstützen (und ich rate dir das in diesem Falle),  geht es einfach so:

    <td onclick="setColor(this);" ><a href="home1.htm" target="targetFrameName">Willkommen</a></td>

    var old = null;

    function setColor(obj)
    {
    if(old)
    {
      // alten Zustand herstellen
      old.style.color = old.color;
      old = obj;
    }
    obj.old = obj.style.color;
    obj.style.color = 'red';
    }

    struppi.

    1. Da die Linkfunktion auch ohne JS funktioniert. Falls du darauf verzichten kannst, Netscape 4.x zu unterstützen (und ich rate dir das in diesem Falle),  geht es einfach so:

      Arrgghh, da waren ein paar Fehler drinne, so is's richtig:
      function setColor(obj, color)
      {
      if(!color) color = "red";
      if(old)
      {
         // alten Zustand herstellen
         old.style.color = old.color;

      }
      obj.color = obj.style.color;
      obj.style.color = color;
      old = obj;
      }

      struppi.

      1. Servus!»

        function setColor(obj, color)
        {
        if(!color) color = "red";
        if(old)
        {
           // alten Zustand herstellen
           old.style.color = old.color;

        }
        obj.color = obj.style.color;
        obj.style.color = color;
        old = obj;
        }

        Erst einmal danke!
        Hab das ganze mal eingebaut und jetzt bekomme ich die Fehlermeldung, dass ein Objet erwartet wird. Muss ich nicht im Funktionsaufruf noch den Parameter color übergeben? Oder muss vorher in den Stylesheets den Uruzstand (old) definieren, damit die Funktion weiß, was old eigentlich ist?

        bdt
        Bastian

        --------------------------------
        It took years to climb a mountain,
        but seconds to fall.

        1. Hab das ganze mal eingebaut und jetzt bekomme ich die Fehlermeldung, dass ein Objet erwartet wird. Muss ich nicht im Funktionsaufruf noch den Parameter color übergeben? Oder muss vorher in den Stylesheets den Uruzstand (old) definieren, damit die Funktion weiß, was old eigentlich ist?

          Bei mir funktioniert es ohne Probleme: http://home.arcor.de/struebig/js/test/tabelle.htm

          Struppi.

  5. Ich sehe gerade:

    document.getElementById(id).style.color = "#FF0000";

    <td id="link_h1"><a href="home1.htm" onclick="linkin('link_h1','home1.htm');return false">Willkommen</a></td>

    Du änderst die Schriftfarbe, aber du willst die Schriftfarbe der Links ändern, das geht so nicht. Du musst den Links eine Klasse zuweisen und diese dann ändern, wie in den Beispielen die Thomas gepostet hat. Und nicht die der Tabellenzelle, sonder der Links die angeklickt werden.

    Struppi.

    1. Servus!

      Ich liebe dich. Willst du mich heiraten?
      Es funzt.

      Danke, danke, oh, du mein Tagesheld, wie kann ich dir nur danken. Gold, Myrre und ewige Fruchtbarkeit sollen dir beschieden sein.

      bdt
      Bastian
      --------------------------------
      It took years to climb a mountain,
      but seconds to fall.

      1. Servus!

        Ich liebe dich. Willst du mich heiraten?

        Och, nö.

        Es funzt.

        Wat.

        Danke, danke, oh, du mein Tagesheld, wie kann ich dir nur danken. Gold, Myrre und ewige Fruchtbarkeit sollen dir beschieden sein.

        Gold ist ja ok, mit Myrre kann ich, glaube ich, nicht viel anfangen und das mit der Fruchtbarkeit könnte eher mal bald aufhören ;-)

        Struppi.