Thomas: "parent" bei verschachtelten Frames?

Hallo!

Ich hab eine HP als Frameset aufgebaut (3 Zeilen - oben, mitte, unten).
Im oberen Frame ist das Hauptmenü, welches die Unterseiten im mittleren Frame öffnet. Hier habe ich einen kleinen JS-Bildwechsler drinnen.
Die Contentseiten im mittleren Frame sind wiederum Framesets (3 Spalten - links, rechts, mitte).
Nun kann es sein, dass ich in einer Unterseite einen Link habe, der mit einem Hauptmenü identisch ist.
zB. Ich hab oben die Bereiche "About me" und "Service". Wenn ich in ersterer Rubrik bin, kann ich von dort auch per Direktlink in den Bereich "Service" gelangen. Nun möchte ich bei diesem Link natürlich, dass der Bilderwechsler im Hauptmenü mitgeht.

Deshalb lass ich da per onClick folgendes ausführen:

onClick="parent.topmenu.Bildwechsel(17,Highlight1);"

Leider scheint das nicht zu funktionieren, jedenfalls passiert im Hauptmenü nichts, nicht mal eine Fehlermeldung erscheint ;o(

Weiss jemand, was ich hier falsch mache?

lg, Thomas

  1. Schalte im IE das Skriptdebugging und die Skriptfehlermeldungen ein. Probier mal, was bei onclick="alert(parent.topmenu)" und bei onclick="alert(parent.topmenu.Bildwechsel)" passiert. Beu in deine Bildwechsel-Funktion ein alert(...) ein, um zu sehen, ob der Code überhaupt ausgeführt wird.

    Im Endeffekt bleibt dir also nur rumprobieren ...

  2. Deshalb lass ich da per onClick folgendes ausführen:

    onClick="parent.topmenu.Bildwechsel(17,Highlight1);"

    Leider scheint das nicht zu funktionieren, jedenfalls passiert im Hauptmenü nichts, nicht mal eine Fehlermeldung erscheint ;o(

    Das glaub ich nicht. Schau mal in die Javascript Konsole von Mozilla.

    parent ist das Fenster, in dem das Frameset drin steht, d.h. in der Datei, in der du <frameset .... </frameset> definiert hast, muss das Frame 'topmenu' existieren und in diesem die Funktion 'Bildwechsel()' und selbst wenn dies schon richtig wäre, muss zusätzlich in dem Fenster, von dem aus du diese Funktion aufrufst das Objekt/die Variabel 'Highlight1' definiert sein und so wie das vermute ist das nciht der Fall.

    Ich kan dir eigentlich nur raten, entweder auf sowas zu verzichten oder das Frameset ganz abzuschaffen, ist sowieso nicht besonders Zeitgemäß http://www.subotnik.net/html/frames.html, oder nochmal gründlich das Kapitel in selfhtml über Frames/windows durchzulesen.

    Struppi.

  3. Hallo,

    Ich hab eine HP als Frameset aufgebaut (3 Zeilen - oben, mitte, unten).
    Im oberen Frame ist das Hauptmenü, welches die Unterseiten im mittleren Frame öffnet. Hier habe ich einen kleinen JS-Bildwechsler drinnen.
    Die Contentseiten im mittleren Frame sind wiederum Framesets (3 Spalten - links, rechts, mitte).
    Nun kann es sein, dass ich in einer Unterseite einen Link habe, der mit einem Hauptmenü identisch ist.
    zB. Ich hab oben die Bereiche "About me" und "Service". Wenn ich in ersterer Rubrik bin, kann ich von dort auch per Direktlink in den Bereich "Service" gelangen. Nun möchte ich bei diesem Link natürlich, dass der Bilderwechsler im Hauptmenü mitgeht.

    Deshalb lass ich da per onClick folgendes ausführen:

    onClick="parent.topmenu.Bildwechsel(17,Highlight1);"

    Leider scheint das nicht zu funktionieren, jedenfalls passiert im Hauptmenü nichts, nicht mal eine Fehlermeldung erscheint ;o(

    Weiss jemand, was ich hier falsch mache?

    Wenn ich dich nun richtig verstanden habe, liegt es am parent.
    Versuche mal onClick="top.topmenue.Bildwechsel(17,Highlight1);"
    Du scheinst die Hirarchie innerhalb deines Framesets noch nicht ganz begriffen zu haben, deshalb empfehle ich dir diese Seite:
    http://aktuell.de.selfhtml.org/tippstricks/javascript/fensterzugriff/index.htm
    Ein excellentes Werk, wenn es um Fensterhirarchie geht,wenn du das gelesen und begriffen hast, wirst du nie wieder Probleme mit einer hirarchischen Frage haben.

    Gruß

    Kurt

    --
    "Mut ist eine Tugend, doch Angst beweist Vernunft, Bewusstsein und Phantasie. Die Kunst ist es abzuwägen."
    http://faq.united-web.at
    http://elektro-dunzinger.at
    http://shop.elektro-dunzinger.at
    1. Hallo Thomas,

      Wenn ich dich nun richtig verstanden habe, liegt es am parent.
      Versuche mal onClick="top.topmenue.Bildwechsel(17,Highlight1);"
      Du scheinst die Hirarchie innerhalb deines Framesets noch nicht ganz begriffen zu haben, deshalb empfehle ich dir diese Seite:
      http://aktuell.de.selfhtml.org/tippstricks/javascript/fensterzugriff/index.htm
      Ein excellentes Werk, wenn es um Fensterhirarchie geht,wenn du das gelesen und begriffen hast, wirst du nie wieder Probleme mit einer hirarchischen Frage haben.

      Alternativ dazu könntest du auch onClick="parent.parent.topmenue.Bildwechsel(17,Highlight1);" anwenden.

      Gruß

      Kurt

      --
      "Mut ist eine Tugend, doch Angst beweist Vernunft, Bewusstsein und Phantasie. Die Kunst ist es abzuwägen."
      http://faq.united-web.at
      http://elektro-dunzinger.at
      http://shop.elektro-dunzinger.at