molily: iframe nachladen - target="iframe"

Beitrag lesen

Hallo,

var ZielDatei = "http://meine_url.de/index.htm";

if (!top.FramesetGeladen){
if(document.images)
top.location.replace(F_Impressum.htm);
else
top.location.href = F_Impressum.htm ;
}

Da hast du etwas missverstanden. Das Konzept geht so:

Auf den Unterseiten, d.h. den Dokumenten, die im iframe angezeigt werden, d.h. den Dokumente, die nicht einzeln angezeigt werden sollen, wird überprüft, ob ein übergeordnetes Dokument existiert oder ob das Dokument bereits das oberste ist (top).

Wenn es nicht das oberste ist, soll zum Dokument weitergeleitet werden, das das Unterdokument im iframe einbindet. Das übergeordnete Dokument mit dem iframe-Element muss dazu aber wissen, welches Dokument es ins iframe laden soll. Dazu wird ihm die Adresse des Unterdokuments im Query-String übergeben. Das JavaScript im übergeordneten Dokument hat darauf über location.search Zugriff, liest die Adresse aus und weist sie dem iframe zu.

Der obige Code ist für die Unterdokumente da. F_Impressum.htm macht da kein Sinn, denn F_Impressum.htm ist das gegenwärtige Dokument. Da sollte wieder die Variable ZielDatei stehen. Und die wird obigen mit einem String gefüllt. Da sollte die Adresse des übergeordneten Dokumentes hinein.

Was der obige Code nicht leistet, ist die Weitergabe der Adresse des Unterdokuments. Du brauchst halt wie gesagt zwei Scripte, eins in allen Unterdokumenten, eins im übergeordneten. Siehe z.B. das hier: http://www.starhtml.de/frameset.htm. Mal angepasst und vereinfacht:

Unterdokumente:

<script type="text/javascript">  
[code lang=javascript]if (window != top) { // Prüfe, ob bereits oberstes Dokument  
  var neueAdresse = "[übergeordnetes Dokument]?" + location.href; // Setze Adresse zum übergeordneten Dokument mit Parameter zusammen  
  top.location.replace(neueAdresse); // Weiterleiten  
}

</script>[/code]

Übergeordnetes Dokument:

<script type="text/javascript">  
[code lang=javascript]function befülleIframe () {  
  if (location.search != "") { // Wurde ein Parameter übergeben?  
    var iframeAdresse = location.search.substring(1); // Extrahiere  
    window.frames.iframe.location.replace(iframeAdresse); // Ändere das im iframe dargestellte Dokument  
  }  
}  
window.onload = befülleIframe; // Nach dem erfolgreichen Laden ausführen

</script>[/code]

Mit <iframe name="iframe"></iframe>

Mathias