Bagaimanakah Saya Boleh Mendapatkan URL Halaman Induk daripada iFrame pada Subdomain Berbeza?

Mary-Kate Olsen
Lepaskan: 2024-11-15 22:06:02
asal
837 orang telah melayarinya

How Can I Get the Parent Page's URL from an iFrame on a Different Subdomain?

Akses URL Induk daripada iFrame: Sekatan dan Penyelesaian

Mengakses URL bingkai induk daripada iFrame boleh menjadi satu cabaran, terutamanya apabila iFrame terletak pada subdomain yang berbeza. Ini disebabkan oleh sekatan keselamatan yang dikenakan oleh langkah pencegahan skrip rentas tapak (XSS).

Apabila mengakses iFrame daripada domain dan subdomain yang sama seperti bingkai induk, mengakses lokasi induk haruslah mudah menggunakan ungkapan seperti induk .document.location atau parent.window.location. Walau bagaimanapun, seperti yang diserlahkan oleh pengguna, pendekatan ini gagal apabila iFrame berada pada subdomain yang berbeza.

Untuk menggambarkan lebih lanjut perkara ini, pertimbangkan contoh yang disediakan di mana pageA.html dihoskan pada http://www.mysite .com/ dan pageB.html (iFrame) dihoskan pada http://qa-www.mysite.com/. Percubaan untuk mendapatkan semula URL induk daripada pageB.html akan mencetuskan ralat dinafikan akses. Ini mengesahkan bahawa subdomain juga tertakluk pada sekatan skrip merentas tapak.

Semasa mengakses URL induk secara langsung adalah dilarang dalam keadaan ini, terdapat penyelesaian yang boleh digunakan. Untuk mendapatkan URL bingkai induk, kod JavaScript berikut boleh digunakan:

var url = (window.location != window.parent.location)
            ? document.referrer
            : document.location.href;
Salin selepas log masuk

Nota:

  • window.parent.location mengelakkan ralat keselamatan yang disebabkan oleh mengakses sifat href (window.parent.location.href).
  • document.referrer merujuk kepada URI halaman yang dipautkan kepada iFrame. Ini mungkin tidak mengembalikan dokumen yang mengandungi jika lokasi iFrame ditentukan oleh sumber lain.
  • document.location merujuk kepada URL dokumen, iaitu iFrame dalam kes ini. Apabila window.location dan window.parent.location adalah sama, href iFrame adalah sama dengan href ibu bapa.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan URL Halaman Induk daripada iFrame pada Subdomain 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan