Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Menentukan sama ada Halaman Web Dimuatkan dalam iFrame atau Tetingkap Penyemak Imbas?

Bagaimanakah Saya Boleh Menentukan sama ada Halaman Web Dimuatkan dalam iFrame atau Tetingkap Penyemak Imbas?

Barbara Streisand
Lepaskan: 2024-12-08 11:38:11
asal
162 orang telah melayarinya

How Can I Determine if a Webpage is Loaded in an iFrame or a Browser Window?

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

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

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!

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