Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Melaraskan Ketinggian Iframe Secara Dinamik Semasa Memintas Dasar Asal Sama?

Bagaimanakah Saya Boleh Melaraskan Ketinggian Iframe Secara Dinamik Semasa Memintas Dasar Asal Sama?

Mary-Kate Olsen
Lepaskan: 2024-12-17 13:51:16
asal
714 orang telah melayarinya

How Can I Dynamically Adjust Iframe Height While Bypassing the Same-Origin Policy?

Pelarasan Ketinggian Iframe Dinamik

Apabila menyepadukan kandungan daripada sumber luaran melalui iframe, memastikan pelarasan ketinggian yang betul menjadi penting. Artikel ini membincangkan penyelesaian yang memintas dasar asal yang sama, membenarkan iframe mengubah saiz secara automatik untuk menampung kandungannya.

Mengeksploitasi Keanehan Penyemak Imbas untuk Melangkau Dasar Asal Yang Sama

Kuncinya terletak pada memanfaatkan ciri pelayar yang membenarkan domain induk berkomunikasi dengan iframe, sementara iframe tidak boleh berkomunikasi secara langsung dengan induknya. Hierarki komunikasi ini digambarkan di bawah:

Page Can Communicate With
www.foo.com/home.html N/A (parent)
www.bar.net/framed.html www.foo.com/helper.html (child)
www.foo.com/helper.html www.foo.com/home.html (parent)

Melalui Maklumat Ketinggian Menggunakan Argumen URL

Untuk menentukan ketinggian iframe, halaman kandungan (www.bar.net/ framed.html) mengiranya dan menetapkan atribut src iframe pembantu (terletak pada domain yang sama dengan induk) melalui URL hujah. Helper iframe kemudiannya memajukan maklumat ini kepada induk, yang boleh melaraskan ketinggian iframe sewajarnya.

Pelaksanaan Kod

www.foo.com/home. html (Ibu bapa Halaman):

function resizeIframe(height) {
  // Adjust the iframe height with a slight margin
  document.getElementById('frame_name_here').height = parseInt(height) + 60;
}
Salin selepas log masuk

www.bar.net/framed.html (Halaman Kanak-kanak):

function iframeResizePipe() {
  // Calculate and pass the height to the helper iframe
  var height = document.body.scrollHeight;
  var pipe = document.getElementById('helpframe');
  pipe.src = 'http://www.foo.com/helper.html?height=' + height + '&cacheb=' + Math.random();
}
Salin selepas log masuk

www.foo .com/helper.html (Halaman Pembantu):

function parentIframeResize() {
  // Extract the height from the URL argument
  var height = getParam('height');

  // Communicate the height to the parent page
  parent.parent.resizeIframe(height);
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaraskan Ketinggian Iframe Secara Dinamik Semasa Memintas Dasar Asal Sama?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan