Frames werden verwendet, um Unterseite, entweder IFrames oder Framesets, zu speichern. Das Fensterobjekt ist ein globales Objekt, und alle Funktionen und Objekte auf der Seite befinden sich in seinem Bereich.
1. Elternteil repräsentiert das übergeordnete Fenster. Wenn im übergeordneten Fenster mehrere Schichten des Nistens enthalten, repräsentiert oben das übergeordnete Fenster der obersten Ebene.
Selbst repräsentiert das Fenster selbst.
if (self == top) {//} Bestimmen Sie nur, ob das Fenster auf der oberen Ebene ist, wenn (self == übergeordnet) {} //2.1. Die übergeordnete Seite greift auf untergeordnete Seitenelemente zu. Die Idee ist, dass alle Elemente der Unterseite im Fenster enthalten sind.
Es ist am besten, das Namensattribut für den Rahmen festzulegen, der der bequemste Betrieb ist. wie
<iframe name = "test" src = "child.html"> </iframe>
Wenn Sie das Element mit ID 'Menü' in Child.html erhalten möchten, können Sie es so schreiben:
window.frames ["test"]. document.getElementById ('Menü'); // Da alle Funktionen im Fensterobjekt gespeichert sind, kann das Beginnfenster entfernt werden: Frames ["Test"]. Document.getElementById ('Menü'); // Im Browser entspricht das Namensattribut des Frame standardmäßig dem Fensterobjekt der Unterseite, sodass es weiter abgekürzt werden kann: test.document.getElementById ('Menü');2.2 Übergeordnete Seite greift auf die Seiten oder Objekte auf untergeordnete Seiten auf. Die Funktionen und Objekte der Unterseite befinden sich in ihren Fensterobjekten, genau wie oben, der Schlüssel besteht darin, das Objekt zu erhalten.
// Wenn child.html die showMesg -Funktion definiert und im übergeordneten aufgerufen werden muss, schreiben Sie Fenster. // Abkürzte Form test.showmesg (); // In ähnlicher Weise greift das Objekt auch auf Alarm zu (test.person);
2.3 andere Möglichkeiten, Dokumente zu erhalten.
Verwenden Sie zunächst 'Document.GetElementById ()' oder 'Document.GetElementsByTagName ()', um das Rahmen als Element unter das Dokument zu erhalten, und dann auf das Attribut-ContentDocument/ContentWindow (Iframe, Frame-spezifisch) zugreifen, wird der erste unterstützt, und das zweite wird nicht unterstützt.
<iframe id = "testid" src = "chirt.html"> </iframe> // ====== var doc = document.getElementById ('testid'); // oder var doc = document.getElementsByTagName ('iframe') [0]; Dann var winordoc = doc.contentDocument || doc.contentWindow; // Wählen Sie eines von zwei if (winordoc.document) winordoc = winordoc.document; winfordoc.getElementById ('Menü'); // Wenn Sie ein Fensterobjekt benötigen, schreiben Sie es so wie folgt: if (winfornoc.defaultview) winordoc = winfordoc.defaultView;3.1 Kinderseite Zugriff auf die Elemente der übergeordneten Seiten. Die gleiche Idee wie 2.1 erhalten Sie zuerst das übergeordnete Fensterfenster. Dokumentobjekt
parent.window.document.getElementById ('parentMenu'); // Abkürzung übergeordnet.document.getElementById ('parentMenu');3.2. Die untergeordnete Seite greift auf die übergeordnete Seite oder das Objekt über die übergeordnete Seite auf. Den gleichen Idee wie 2.2 erhalten Sie zuerst das Fensterfenster des übergeordneten Fensters.
parent.Parentfunction ();
Erwähnen wir schließlich die gleiche Ursprungsstrategie von JS, dh der auf der Website A gefundene JS -Code erlaubt keinen Zugriff auf Inhalte auf der Website B, selbst wenn der Code von Website B stammt. Wenn der Frame eine Seite anderer Websites ist, sollte der Browser bei der Zugriff auf einander nach der oben genannten Methode: Der Fehler "No Pection".