Contoh dalam artikel ini menerangkan kaedah pelaksanaan komunikasi halaman induk-anak JavaScript. Kongsikan dengan semua orang untuk rujukan anda. Analisis khusus adalah seperti berikut:
Jika halaman dengan domain www.abc.com mengandungi iframe dengan nilai atribut nama childFrame dan domain iframe ini ialah static.abc.com. Kemudian anda boleh menetapkan domain halaman induk kepada abc.com, dan domain halaman anak kepada abc.com, dan kemudian mencapai komunikasi halaman ibu bapa-anak (saya agak keliru di sini tentang konsep halaman ibu bapa-anak dan merentas domain
Anda juga boleh mencapai akses bersama antara halaman ibu bapa dan anak tanpa menggunakan kaedah di atas.
Kaedahnya ialah: gunakan window.frames[0] atau window.frames["childFrame"] pada halaman induk Apa yang dikembalikan ialah objek Window, dan kemudian anda boleh lulus:
var childWindow = window.frames[0]; // 或者 window.frames["childFrame"] 或者直接childFrame 或者childFrame.window var childDoc = childWindow.contentDocument || childWindow.document;
Gunakan childWindow untuk mengakses fungsi yang melaksanakan definisi subhalaman dan gunakan childDoc untuk mengakses nod DOM subhalaman.
Untuk mengakses halaman induk, halaman anak boleh lulus induk (objek Tetingkap Jika halaman sudah menjadi halaman peringkat teratas, ibu bapa==diri akan kembali benar:
).if(parent != self) { // 当前页面有父页面 // 调用父页面的函数 parent.parentFunc(); var parentDoc = parent.contentDocument || parent.document; // 访问父页面的DOM节点 }
halaman induk www.abc.com:
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); };
www.static.abc.com subhalaman:
Saya harap artikel ini akan membantu reka bentuk pengaturcaraan JavaScript semua orang.