Steffen Lenz: Frame Navigation mit markierten Links

Hi!
Ich bion echt verzweifelt. Nach Stundenlanger Suche, hab ich immer noch keine Lösung für mein Problem gefunden.

Ich hab ne Webseite erstellt, die in mehrere Frames aufgeteilt ist. Der linke, äußere Frame beinhaltet die Navigationslinks. Diese verweisen auf weitere Frames, in denen weitere Navigationslinks enthalten sind. Das funktioniert alles einwandfrei.
Mein Problem ist, daß ein angeklickter Link mit einer bestimmten Hintergrundfarbe markiert werden soll. Diese Markierung soll auch beibehalten werden, wenn in einem anderen Frame ein Link angeklickt wird.

Ich hoffe, ihr könnt mir helfen.

Gruß
Lenzibaer

  1. Hi

    Mein Problem ist, daß ein angeklickter Link mit einer bestimmten Hintergrundfarbe markiert werden soll. Diese Markierung soll auch beibehalten werden, wenn in einem anderen Frame ein Link angeklickt wird.

    Das wird nicht funktionieren. Schuld daran sind die Frames. Du kannst die Navigation aber in die Seite einfügen und den entsprechenden Link farblich hervorheben. Dann müsstest du aber jedesmal wenn du einen neuen link hinzufügst, diesen auf allen Seiten neu hinzufügen. Gegenhilfe bilden sprachen wie javascript: Tipp: Such dir ein fertiges Script.
    Tipp2: Benutz keine Frames...

    Gruss
    Hamza

    1. Tipp: Such dir ein fertiges Script.

      Tipp2: Benutz keine Frames...

      Gruss
      Hamza

      ich such nun schon seit Tagen nach nem Script und hab noch kein passendes gefunden.

      In nem anderen Forum hat mir jemand folgendes vorgeschlagen:

      var iMarkedLink = null;
      function setBackground( id) {
        oElement = document.getElementById( id);
        if (oElement != null) {
          if ( iMarkedLink != null) {
             document.getElementById( iMarkedLink).style.background-color = "white";
          }

      oElement.style.background-color = "red";
          iMarkedLink = id;
        }

      }

      .....

      <a href="jkadfjasjdfkl" onclick="setBackground( this);">mein link</a>
      <a href="asdasdfjasjdfkl" onclick="setBackground( this);">mein link2</a>
      <a href="jkadfjcxvcdfkl" onclick="setBackground( this);">mein link3</a>

      Leider hab ich das nicht zum laufen gebracht.

      Gruß
      Lenzibaer

      1. Hallo Steffen,

        In nem anderen Forum hat mir jemand folgendes vorgeschlagen:
        [...]
        Leider hab ich das nicht zum laufen gebracht.

        Das ist ein generelles Problem fremder Scripts. Wieviel Ahnung hast du denn von Programmierung im Allgemeinen, und javascript im Besonderen?

        var iMarkedLink = null;
        function setBackground( id) {
          oElement = document.getElementById(id);

        Das du mit frames arbeitest solltest du auch den korrekten Pfad zum Dokument angeben. Das macht es einfacher, da das Script dann auch in einem anderen Frame liegen kann.
        parent.frames.DerName.document.getElementById

        if (oElement != null) {
            if ( iMarkedLink != null) {
               document.getElementById( iMarkedLink).style.background-color = "white";

        s.o.

        <a href="jkadfjasjdfkl" onclick="setBackground( this);">mein link</a>

        getElementById(id) benötigt eine? Du ahnst es sicher. Eine ID! Und selbige vermisse ich.

        <a href="..." id="link1" ...

        Letztere sollte dann auch an die Funktion setBackground() übergeben werden. <a href="..." id="link1" onclick="setBackground('link1');"

        Viel Spaß, bei Bedarf kannst du hier http://www.maxx4u.de/drweb/frames/links/index2.html noch spicken.

        Jochen

        1. hi,

          danke für deine Hilfestellung.

          Ich hab das Script, wie du empfohlen hast angepasst, und auch dein Script verwendet.

          Bei beiden Scripten funktioniert die Änderung der Schriftgröße, jedoch lässt sich der Hintergrund nicht ändern. Ich habe dazu einfach "fontWeight" durch "backgroundcolor" ersetzt. Dies funktioniert aber nicht.

          Hast du ein Tipp?

          Gruß
          Lenzibaer

          1. Hallo,

            Ich habe dazu einfach "fontWeight" durch "backgroundcolor" ersetzt. Dies funktioniert aber nicht.
            Hast du ein Tipp?

            http://selfhtml.teamone.de/dhtml/modelle/microsoft.htm#css_schreibweise

            CSS: font-weight;      javascript: fontWeight
            CSS: background-color; javascript: erkennst du deinen Fehler?

            HTH

            Jochen

            1. erkennst du deinen Fehler?

              aaaaaaaaarrrrrrrrrrghhhhh!

              Ich könnt mir in den A.... beissen! Danke! Ich bin schon fast verzweifelt, und dann liegt es an dieser blöden Schreibweise. Ich hab zwar gewusst, daß es "backgroundcolor" heißen muss, aber nicht "backgroundColor".

              Ich danke dir.

              Beste Grüße
              Lenzibaer

  2. Hallo Steffen,

    Mein Problem ist, daß ein angeklickter Link mit einer bestimmten Hintergrundfarbe markiert werden soll. Diese Markierung soll auch beibehalten werden, wenn in einem anderen Frame ein Link angeklickt wird.

    das ist ein recht allgemein gehaltenes Problem.
    Daher auch nur ein kurze Antwort:

    Du benötigst das onClick event, eine Prise javascript, gewürzt mit etwas CSS
    http://selfhtml.teamone.de/javascript/sprache/eventhandler.htm#onclick
    http://selfhtml.teamone.de/javascript/objekte/document.htm#get_element_by_id
    http://selfhtml.teamone.de/css/eigenschaften/hintergrund.htm#background_color

    Hast du denn bereits etwas? Das würde die Sache etwas vereinfachen.

    Grüße,

    Jochen

  3. Hi,

    zunaechst mal ein kleiner Test, wie Du per Javascript und Css die Bg-Farben der Links veraendern kannst:
    ---------
    <html>
    <head>
    <style type="text/css">
    .class1,a {background-color: red;  color: white;}
    .class2   {background-color: blue; color: white;}
    </style>
    <script language="javascript" type="text/javascript">
    function change_bg(id) { if(document.documentElement)document.getElementById(id).className="class2";
    }
    </script>
    </head>
    <body>
    <a id="lnk1" onclick="change_bg('lnk1')" href="#">Erster Link</a><br>
    <a id="lnk2" onclick="change_bg('lnk2')" href="#">Zweiter Link</a><br>
    <a id="lnk3" onclick="change_bg('lnk3')" href="#">Dritter Link</a>
    </body>
    </html>
    -------
    Du uebergibst einfach eine id, und weist ihr eine andere Klasse zu. Man koennte auch einfach this uebergeben, und sich den Zugriff ueber Dom sparen, aber so kannst Du auch aus einem Nachbarframe auf diese Funktion zugreifen - sofer Du eine korrekte id uebergibst. Referentierungen zwischen Frames findest Du in der hiesigen Doku.

    Gruesse  Joachim