Bingkai digunakan untuk menyimpan sub -halaman, baik iframe atau frame. Objek jendela adalah objek global, dan semua fungsi dan objek pada halaman berada dalam ruang lingkupnya.
1. Orangtua mewakili jendela induk. Jika ada beberapa lapisan bersarang di jendela induk, atas mewakili jendela induk tingkat atas.
diri mewakili jendela itu sendiri.
if (self == top) {//} Cukup tentukan apakah jendela berada di level atas jika (self == induk) {} //2.1. Halaman induk mengakses elemen halaman anak. Idenya adalah bahwa semua elemen subpase ada di jendela. Objek Dokumen, cukup dapatkan dan kemudian mudah dikatakan.
Yang terbaik adalah mengatur atribut nama untuk bingkai, yang merupakan operasi yang paling nyaman. menyukai
<iframe name = "test" src = "child.html"> </iframe>
Jika Anda ingin mendapatkan elemen dengan ID 'menu' di Child.html, Anda dapat menulisnya seperti ini:
window.frames ["test"]. document.geteLementById ('menu'); // Karena semua fungsi disimpan di objek jendela, jendela awal dapat dihapus: bingkai ["test"]. Document.getElementById ('menu'); // Di browser, atribut nama bingkai setara dengan objek jendela subpase secara default, sehingga dapat disingkat lebih lanjut: test.document.getElementById ('menu');2.2 Halaman Induk Mengakses Fungsi atau Objek Halaman Anak. Fungsi dan objek dari subhalaman ada di objek jendela mereka, sama seperti di atas, kuncinya adalah untuk mendapatkan objek.
// Jika Child.html mendefinisikan fungsi showmesg dan perlu dipanggil dalam induk, lalu tulis window.frames ['test']. Showmesg (); // tes bentuk disingkat.showmesg (); // Demikian pula, objek juga mengakses peringatan (test.person);
2.3 Cara lain untuk mendapatkan dokumen.
Pertama gunakan 'document.getElementById ()' atau 'document.getElementsbyTagname ()' untuk mendapatkan bingkai sebagai elemen di bawah dokumen, dan kemudian mengakses contentDocument/contentWindow (iframe, spesifik bingkai), yang pertama tidak didukung, dan yang kedua tidak didukung.
<iframe id = "testId" src = "child.html"> </iframe> // ====== Var doc = document.getElementById ('testId'); // atau var doc = document.geteLementsbyTagname ('iframe') [0]; Kemudian var winordoc = doc.contentDocument || doc.contentwindow; // pilih salah satu dari dua if (winordoc.document) winordoc = winordoc.document; winordoc.getElementById ('menu'); // Jika Anda memerlukan objek jendela, tulis seperti ini: if (winordoc.defaultview) winordoc = winordoc.defaultview;3.1 Halaman Anak mengakses elemen halaman induk. Ide yang sama dengan 2.1, pertama -tama dapatkan jendela jendela induk. Objek Dokumen
parent.window.document.getElementById ('parentmenu'); // singkatan parent.document.geteLementById ('parentmenu');3.2. Halaman anak mengakses fungsi atau objek halaman induk. Gagasan yang sama dengan 2.2, pertama dapatkan objek jendela jendela induk.
parent.parentfunction ();
Akhirnya, mari kita sebutkan strategi asal JS yang sama, yaitu, kode JS yang terletak di situs web A tidak mengizinkan akses ke konten yang terletak di situs web B, bahkan jika kode berasal dari situs web B. Jika bingkai adalah halaman situs web lain, maka ketika mengakses satu sama lain sesuai dengan metode di atas, browser harus meminta: 'tidak ada kesalahan izin'.