Elemente eines anderen Fensters ändern
Paranoid
- javascript
Hallo,
ich habe 2 Fenster a.php und b.php.
a.php enthält ein Objekt mit einer id="beispiel".
Kann ich aus dem Fenster von b.php diese id ansteuern/ändern?
Was nicht so einfach funktioniert, ist der Aufruf aus b.php heraus:
document.getElementById("beispiel").innerHTML="Moin";
ich habe 2 Fenster a.php und b.php.
Kann ich aus dem Fenster von b.php diese id ansteuern/ändern?
Ja.
Zugriff auf verschachtelte Fensterobjekte
Hast du das zweite Fenster mit window.open geöffnet? Dann gibt dir window.open bereits eine Referenz auf das window-Objekt des neu geöffneten Fensters zurück.
Mathias
Ja, das Fenster wurde durch window.open erzeugt. Aber wie genau erfolgt der Zugriff auf Element des Referenzfensters?
Ja, das Fenster wurde durch window.open erzeugt. Aber wie genau erfolgt der Zugriff auf Element des Referenzfensters?
var zweitfenster = window.open(...); // zweitfenster ist ein ganz normales window-Objekt
Später der Zugriff:
zweitfenster.document.getElementById(...) usw.
Auf das gesamte Dokument im Fenster kannst du natürlich erst beim onload zugreifen, also wenn es vollständig geladen wurde.
Mathias
In Deinem Beispiel ruft a Fenster b auf.
a ändert dann Elemente von b (so habe ich es zumindest verstanden)
Mein Problem ist aber so:
a ruft b auf.
b ändert Elemente aus a.
Irgendwie stehe ich auf dem Schlauch...
Hättest du den Artikel gelesen, den ich dir empfohlen hatte, oder das Forumsarchiv durchsucht, wärst du schnell auf ... *Trommelwirbel* ... opener gestoßen. Damit kannst du im Popup-Fenster das öffnende Fenster ansprechen.
Mathias
Yerf!
ich habe 2 Fenster a.php und b.php.
a.php enthält ein Objekt mit einer id="beispiel".Kann ich aus dem Fenster von b.php diese id ansteuern/ändern?
Ja, wenn beide Dokumente von der selben Domain geladen wurden und du im Javascript von b.php eine Referenz auf das Fenster von a.php hast (z.B. als Rückgabe eines window.open()-Aufrufs).
Was nicht so einfach funktioniert, ist der Aufruf aus b.php heraus:
document.getElementById("beispiel").innerHTML="Moin";
Klar. Dieser Aufruf heist implizit
window.document.getElementById("beispiel").innerHTML="Moin";
und verwendet somit das aktuelle Fenster. "window" muss jetzt nur durch die Referenz auf das andere Fenster ersetzt werden.
Gruß,
Harlequin