Menentukan sama ada Halaman Web Dimuatkan dalam iFrame atau Tetingkap Penyemak Imbas
Apabila membangunkan aplikasi berasaskan iframe, adalah perlu untuk membezakan sama ada halaman web dimuatkan dalam iframe atau terus dalam tetingkap penyemak imbas. Pemahaman ini membolehkan kefungsian yang disesuaikan untuk senario yang berbeza.
Mengesan Konteks Pemuatan
Pendekatan yang diluluskan melibatkan penggunaan sifat window.self dan window.top:
const inIframe = () => window.self !== window.top;
window.self merujuk kepada objek tetingkap semasa, manakala window.top merujuk kepada tetingkap peringkat atas. Jika kedua-dua objek ini tidak sama, ia menunjukkan bahawa halaman web dimuatkan dalam iframe.
Mengatasi Keserasian Penyemak Imbas
Dalam penyemak imbas terkini, kaedah ini disokong secara meluas, membenarkan pengesanan iframe yang tepat. Walau bagaimanapun, berhati-hati adalah dinasihatkan apabila berurusan dengan penyemak imbas lama, kerana sesetengah mungkin menyekat akses ke window.top disebabkan oleh sekatan keselamatan.
Pendekatan Alternatif
Untuk mengambil kira ketidakkonsistenan penyemak imbas , pendekatan alternatif melibatkan penggunaan blok cuba-tangkap:
function inIframe () { try { return window.self !== window.top; } catch (e) { return true; } }
Jika akses kepada window.top adalah dinafikan, blok tangkapan akan menangkap pengecualian dan kembali benar, menunjukkan bahawa halaman web mungkin dimuatkan dalam iframe.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan sama ada Halaman Web Dimuatkan dalam iFrame atau Tetingkap Penyemak Imbas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!