Rumah >hujung hadapan web >tutorial js >Adakah Halaman Web Saya Dimuatkan Secara Terus atau Di Dalam iFrame?

Adakah Halaman Web Saya Dimuatkan Secara Terus atau Di Dalam iFrame?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-14 08:54:12167semak imbas

Is My Webpage Loaded Directly or Inside an iFrame?

Mengenal pasti iFrame lwn. Pemuatan Halaman Langsung

Dalam pembangunan web, mungkin perlu untuk menentukan sama ada halaman web sedang dimuatkan di dalam iFrame atau terus ke dalam tetingkap penyemak imbas . Perbezaan ini boleh memberi implikasi kepada kelakuan dan kefungsian halaman web.

Satu kaedah untuk mengenal pasti perbezaan ini ialah dengan membandingkan objek window.self dan window.top. Dalam halaman web yang dimuatkan terus ke dalam tetingkap penyemak imbas, kedua-dua objek ini akan merujuk objek tetingkap yang sama. Walau bagaimanapun, apabila dimuatkan dalam iframe, window.self akan merujuk tetingkap iframe, manakala window.top akan merujuk tetingkap induk.

Untuk menyemak ini dengan cara yang mantap, seseorang boleh menggunakan kod berikut:

const inIframe = () => window.self !== window.top;

Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa, walaupun boleh dipercayai dalam kebanyakan penyemak imbas, pendekatan ini boleh dipengaruhi oleh sekatan silang asal, terutamanya dalam Internet Explorer. Oleh itu, adalah penting untuk mengendalikan kemungkinan ralat dengan berhati-hati.

Kemas kini (2024):

Menurut dokumentasi mengenai akses API skrip silang asal, window.self dan window .atas termasuk dalam sifat silang asal yang dibenarkan. Ini menunjukkan bahawa kod berikut harus menyediakan cara yang lebih konsisten dan boleh dipercayai untuk mengesan iFrames:

const inIframe = () => window.self !== window.top;

Atas ialah kandungan terperinci Adakah Halaman Web Saya Dimuatkan Secara Terus atau Di Dalam iFrame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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