ptr: Überschrift in anderem Frame ändern

Beitrag lesen

Hallo Philipp

Es muss doch gehen bei "onclick" die gewünschte Überschrift als Variable zu übergeben und anzeigen zu lassen.

Ja, das geht.

Das müsste dann doch irgendwie so funzen:

<a href="..." onclick="ueber('LinkXY')>

Ja, das funktioniert auch so. Bedingung ist natürlich, daß die angesprochene Funktion "ueber()" das Richtige macht.
Kleiner Fehler dabei: abschließendes " fehlt. Muß richtig heißen:
<a href="..." onclick="ueber('LinkXY')">

Ich bin mir gar nicht im klaren, ob ich die Funktion in den Links-Frame, oder, was ich logischer fände, in den oben-Frame schreiben muss.

Das geht beides!

[1]
Funktion "ueber()" ist im Links-Frame:
Die Funktion befindet sich im Links-Frame und kann einfach mit:
<a href="..." onclick="ueber('LinkXY')"> aufgerufen werden.

[2]
Funktion "ueber()" ist im oben-Frame:
Die Funktion befindet sich in einem anderen Frame.
Du mußt dem "onclick" sagen, welche Funktion aufgerufen werden soll. Dazu mußt du mitteilen, wo diese Funktion zu finden ist, in diesem Fall im oben-Frame (parent.oben bzw. top.oben).
Das machst du im 1. Beispiel übrigens auch. Dadurch, daß du keine Angabe machst ist festgelegt, daß die Funktion im gleichen Frame(Window) definiert ist.
Ist die Funktion also im oben-Frame definiert, kannst du Sie vom Links-Frame aus auf folgende Weise aufrufen:
<a href="..." onclick="parent.oben.ueber('LinkXY')">
oder:
<a href="..." onclick="top.oben.ueber('LinkXY')">

Außerdem weiß ich nicht, wo ich "document.write" hinschreiben muss, damit es mir nicht die ganze Seite überschreibt.

"document.write()" überschreibt immer die ganze Seite, es wird immer das alte Dokument durch ein neues ersetzt, außer beim Laden.
Es ist also nur möglich, mit "document.write()" zusätzlichen HTML-Code in ein Dokument zu schreiben, während dieses gerade analysiert wird.

<script type="text/javascript">
  <!--
     function ueber(capital) {
        document.write(capital);
      }

-->
</script>

Ich hab das dann auch mit allen möglichen Variationen von top.oben.ueber() und parent.oben.ueber() usw. versucht aufzurufen, leider ohne Erfolg.

Dazu müßte die Funktion im oben-Frame notiert sein und der Aufruf im Links-Frame würde lauten:
<a href="..." onclick="parent.oben.ueber('LinkXY')"> (siehe [2])
Beim ersten Aufruf würde die Funktion das Dokument, in der sie steht überschreiben und wäre selbst nicht mehr vorhanden. Gibt beim zweiten Aufruf ne Fehlermeldung, weils die Funktion nicht mehr gibt.

Für Fall [1] würde das Ganze so aussehen:

Funktion im Links-Frame:

<script type="text/javascript">
  <!--
     function ueber(capital) {
     parent.oben.document.write(capital);
     }

-->
</script>

Aufruf der Funktion im gleichen Frame (Links-Frame):

<a href="..." onclick="ueber('LinkXY')">

Aber wie gesagt, das taugtin dieser Form nichts für dich, weils die ganze Seite überschreibt und dein schönes Design zerstört.
Du hättest natürlich die Möglichkeit, mit "document.write()" ein komplettes HTML-Dokument in den oben-Frame zu schreiben.
Andere Möglichkeit ist, auf im oben-Frame vorhandene Objekte zuzugreifen und deren Inhalt zu ändern.

Wie weit bist du denn in Javascript, kennst du dich etwas mit DOM aus, weißt du wie man auf Elemente zugreifen kann und was Knoten sind?

gruß
ptr