Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Mengakses Kandungan iFrame daripada Domain Berbeza?

Bagaimanakah Saya Boleh Mengakses Kandungan iFrame daripada Domain Berbeza?

DDD
Lepaskan: 2024-12-23 15:04:14
asal
276 orang telah melayarinya

How Can I Access an iFrame's Content from a Different Domain?

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>
Salin selepas log masuk

Halaman utama (example.com):

<script>
  window.onmessage = function(event) {
    alert(event.data);
  };
</script>

<!-- Trigger the message sending -->
<iframe>
Salin selepas log masuk
document.getElementById('myframe').contentWindow.postMessage('', '*');
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan