Das Beispiel in diesem Artikel beschreibt die Implementierungsmethode der JavaScript-Eltern-Kind-Seitenkommunikation. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt:
Wenn eine Seite mit der Domäne www.abc.com einen Iframe mit einem Namensattributwert von childFrame enthält und die Domäne dieses Iframes static.abc.com ist. Dann können Sie die Domäne der übergeordneten Seite auf abc.com und die Domäne der untergeordneten Seite auf abc.com festlegen und dann die Kommunikation zwischen übergeordneten und untergeordneten Seiten erreichen (ich bin hier etwas verwirrt über die Konzepte von übergeordneten und untergeordneten Seiten). und domänenübergreifend
Sie können den gegenseitigen Zugriff zwischen übergeordneten und untergeordneten Seiten auch ohne die oben beschriebene Methode erreichen.
Die Methode lautet: Verwenden Sie window.frames[0] oder window.frames["childFrame"] auf der übergeordneten Seite. Zurückgegeben wird ein Window-Objekt, und dann können Sie Folgendes übergeben:
var childWindow = window.frames[0]; // 或者 window.frames["childFrame"] 或者直接childFrame 或者childFrame.window var childDoc = childWindow.contentDocument || childWindow.document;
Um auf die übergeordnete Seite zuzugreifen, kann die untergeordnete Seite parent (Fensterobjekt) übergeben. Wenn eine Seite bereits eine Seite der obersten Ebene ist, gibt parent==self true zurück:
if(parent != self) { // 当前页面有父页面 // 调用父页面的函数 parent.parentFunc(); var parentDoc = parent.contentDocument || parent.document; // 访问父页面的DOM节点 }
document.domain = 'abc.com'; var ifr = document.createElement('iframe'); ifr.src = 'http://static.abc.com/'; ifr.style.display = 'none'; document.body.appendChild(ifr); ifr.onload = function(){ var doc = ifr.contentDocument || ifr.contentWindow.document; // 在这里操纵子页面 alert(doc.getElementsByTagName("h1")[0].childNodes[0].nodeValue); };