Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengakses Kandungan iFrame daripada Domain Berbeza?
Akses iFrame Merentas Domain: Penyelesaian
Apabila cuba mengakses kandungan iFrame daripada domain lain, anda mungkin menghadapi Ralat "Kebenaran dinafikan untuk mengakses harta". Isu ini timbul disebabkan oleh dasar merentas domain penyemak imbas, yang mengehadkan pertukaran data antara domain atas sebab keselamatan.
Untuk mengatasi pengehadan ini, anda boleh menggunakan kaedah postMessage, tersedia jika anda mempunyai kawalan ke atas kedua-dua tapak pembingkaian dan kandungan iFrame. Kaedah ini membolehkan anda menghantar dan menerima mesej antara domain yang berbeza.
Berikut ialah contoh pelaksanaan:
Tapak berbingkai (iframe.net):
<script> window.onmessage = function(event) { event.source.postMessage(document.body.innerHTML, event.origin); }; </script>
Halaman utama (example.com):
<script> window.onmessage = function(event) { alert(event.data); }; </script> <!-- Trigger the message sending --> <iframe>
document.getElementById('myframe').contentWindow.postMessage('', '*');
Kaedah postMessage mengambil dua hujah: mesej untuk dihantar dan asal sasaran (domain untuk menerima mesej). Dalam contoh ini, kami menggunakan '*' untuk menunjukkan bahawa mesej boleh diterima oleh mana-mana domain.
Apabila kod ini dilaksanakan, mesej yang mengandungi badan iFrame dihantar dari tapak berbingkai ke utama halaman, di mana ia dipaparkan dalam kotak amaran. Ini menunjukkan cara memintas dasar merentas domain dan bertukar data antara dua domain menggunakan kaedah postMessage.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Kandungan iFrame daripada Domain Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!