Rumah > Artikel > hujung hadapan web > Ringkasan kemahiran interaksi halaman ibu bapa dan anak javascript_kemahiran javascript
Frame digunakan untuk menyimpan subhalaman, yang boleh sama ada iframe atau frameset. Objek tetingkap ialah objek global, dan semua fungsi dan objek pada halaman berada dalam skopnya.
1. Induk mewakili tetingkap induk Jika tetingkap induk mempunyai beberapa peringkat sarang, bahagian atas mewakili tetingkap induk peringkat atas.
diri mewakili tingkap itu sendiri.
if(self==top){//}判断窗口是否处于顶级 if(self==parent){}//也可以
2.1. Halaman induk mengakses elemen halaman anak. Ideanya ialah unsur-unsur subhalaman semuanya dalam tetingkapnya.objek dokumen Mudah untuk mendapatkannya dahulu dan kemudian bercakap mengenainya.
Adalah lebih baik untuk menetapkan atribut nama bingkai, yang merupakan operasi yang paling mudah. Seperti
<iframe name="test" src="child.html"></iframe>
Jika anda ingin mendapatkan elemen dengan id 'menu' dalam child.html, anda boleh menulis seperti ini:
window.frames["test"].document.getElementById('menu'); //由于所有的函数都存放在window对象里面,可去掉开头的window: frames["test"].document.getElementById('menu'); //在浏览器中,帧的name属性被默认等同于子页面的window对象,因此可以进一步简写: test.document.getElementById('menu');
2.2 Halaman induk mengakses fungsi atau objek halaman anak. Fungsi dan objek subhalaman semuanya dalam objek tetingkapnya Sama seperti di atas.
//假如child.html定义了showMesg函数,需要在父中调用,则这样写 window.frames['test'].showMesg(); //简写形式 test.showMesg(); //同理,对象也是如此访问 alert(test.person);
2.3 Cara lain untuk mendapatkan dokumen.
Mula-mula gunakan 'document.getElementById()' atau 'document.getElementsByTagName()' untuk mendapatkan bingkai sebagai Elemen di bawah dokumen, dan kemudian mengakses sifatnya contentDocument/contentWindow (khusus untuk iframe dan bingkai). oleh ie7-. Krom kedua tidak disokong.
<iframe id="testId" src="child.html"></iframe> //====== var doc=document.getElementById('testId'); //或者 var doc=document.getElementsByTagName('iframe')[0]; 然后 var winOrdoc=doc.contentDocument||doc.contentWindow;//二选一 if(winOrdoc.document)winOrdoc=winOrdoc.document; winOrdoc.getElementById('menu'); //如果需要window对象,则这样写: if(winOrdoc.defaultView)winOrdoc=winOrdoc.defaultView;
3.1 Sub-halaman mengakses elemen halaman induk. Ideanya adalah sama seperti 2.1, mula-mula dapatkan tetingkap induk.objek dokumen
parent.window.document.getElementById('parentMenu'); //简写 parent.document.getElementById('parentMenu');
3.2, Halaman anak mengakses fungsi atau objek halaman induk. Ideanya adalah sama seperti 2.2, mula-mula dapatkan objek tetingkap induk.
parent.parentFunction();
Akhir sekali, izinkan saya menyebut dasar asal yang sama bagi js, iaitu, kod js yang terletak di tapak web A tidak dibenarkan untuk mengakses kandungan yang terdapat di tapak web B, walaupun kod itu berasal dari tapak web B. Jika bingkai adalah halaman dari tapak web lain, maka apabila mengakses satu sama lain mengikut kaedah di atas, penyemak imbas harus menggesa: ralat 'Tiada kebenaran'.