Ulrich: Seite dynamisch nach target von a in den Frame laden

Hallo,

ich habe ein Frameset, das aus mehreren besteht. Unter anderem habe ich ein Menü-Frame und ein Anzeigeframe; es existieren noch weitere.

ich habe folgenden HTML-Auszug:

<td onClick="Klick('01')"><a href="../home.htm" target="rechts" id="a01"><b>Home</b></a></td>

Hier der Code für die Methode Klick:

function Klick(num)
{
  if(document.getElementById('a' + num))
  {
    var zielframe = document.getElementById('a' + num).target;
    top.zielframe.location.href=document.getElementById('a' + num).href;
  }

}

Nun zu meinem Problem: Dieser Htmlauszug kommt mehrfach vor (ist ein Teil eines Menupunktes, von dem es mehrere gibt) deswegen die Nummerierung. Ich will jetzt, wenn auf die Zelle geklickt wird (Ereignis onClick), dass die Seite aus dem Link in dem angegeben target vom Link aufgerufen wird. Ich weiss jetzt nicht, wie ich das in Javascript schreiben soll. Ich habe ein Versuch (s.o.) unternommen, das funktioniert aber nicht.

Bitte helft mir.

danke schon mal im voraus.

  1. hi,

    var zielframe = document.getElementById('a' + num).target;
        top.zielframe.location.href=document.getElementById('a' + num).href;

    das sucht nach einem frame, der auch wirklich "zielframe" heißt.

    top.frames[zielframe] hingegen würde sich auf den frame beziehen, dessen namen in der variablen zielframe steht.

    <td onClick="Klick('01')"><a href="../home.htm" target="rechts" id="a01"><b>Home</b></a></td>

    javascript ist hier eigentlich komplett überfüssig, wenn du dafür sorgst, dass der link die komplette tabellenzelle einnimmt.

    dafür formatierst du ihn mit display:block, und noch einem zusätzlichen width:100% für den IE.

    gruß,
    wahsaga

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

      danke für Deine Antwort. Mit Javascript funktioniert das jetzt so, wie gesagt. Ich habe das gleich mal mit CSS gemacht und es funktioniert. Mist, dann hätte ich mir das ersparen können mit Javascript. Na egal, dann habe ich wieder was dazu gelernt.

      Schönen Tag noch

      Ulrich

  2. Hi Ulrich,

    <td onClick="Klick('01')"><a href="../home.htm" target="rechts" id="a01"><b>Home</b></a></td>

    Hier der Code für die Methode Klick:

    function Klick(num)
    {
      if(document.getElementById('a' + num))
      {
        var zielframe = document.getElementById('a' + num).target;
        top.zielframe.location.href=document.getElementById('a' + num).href;
      }
    }

    der link an sich (ohne das onclick) funzt?
    [ ] ja
    [ ] nein

    du willst, dass man nicht nur durch klicken auf den link, sondern auch durch klicken auf den rest der zelle die seite öffnen kann?
    [ ] ja
    [ ] nein

    du hast eine tabelle (im menu-frame), und in jeder einzelnen zelle ist ein link?
    [ ] ja
    [ ] nein

    wenn du alle drei fragen mit ja beantworten kannst:

    1. schmeiß die ganze tabelle weg
    2. schreib nur die links auf (ohne target=, siehe Zielfensterbasis, und ohne onclick/id)
    3. mach per css (a:link/a:link:hover {display:block}) große, schöne buttons
    4. lern ein bisschen css und mach die buttons noch schöner
    5a. freu dich, dass du eine schöne menüleiste hast.
    5b. ärger dich, dass du noch so doofe frames hast.
    6. schmeiß die ganzen frames weg und mach deine seiten so wie in hier beschrieben: http://de.selfhtml.org/css/layouts/
    7. freu dich, dass du eine gescheite seite hast.

    Gruß, Marian