Menangkap Klik dalam Cross-Domain iFrames dengan JavaScript
Mengesan interaksi pengguna dalam iFrames merentas domain boleh mencabar disebabkan oleh sekatan keselamatan. Walau bagaimanapun, adalah mungkin untuk menjejak sama ada klik telah berlaku dalam iframe menggunakan pendekatan kreatif.
Penyelesaian:
Untuk menangkap peristiwa klik daripada iframe, pertimbangkan pendekatan berikut:
1. Cipta Div Halimunan:
Letakkan div halimunan terus di atas iframe. Div ini akan menangkap sebarang klik dalam iframe.
2. Gunakan Acara Kabur Tetingkap:
Apabila pengguna mengklik dalam iframe, ia menyebabkan tetingkap induk hilang fokus. Dengan mendengar acara kabur tetingkap, anda boleh mengesan klik.
3. Semak Elemen Aktif:
Dalam pengendali acara kabur, semak sama ada elemen aktif ialah IFRAME. Jika ya, klik berlaku dalam iframe.
4. Beritahu Acara:
Kemas kini elemen yang ditentukan, seperti
Coretan Kod:
Contoh berikut menunjukkan cara melaksanakan perkara ini penyelesaian:
const message = document.getElementById("message"); // Focus main document to detect iframe clicks window.focus(); window.addEventListener("blur", () => { setTimeout(() => { if (document.activeElement.tagName === "IFRAME") { message.textContent = "clicked " + Date.now(); console.log("clicked"); } }); }, { once: true });
Nota:
Penyelesaian ini mungkin tidak serasi dengan semua penyemak imbas dan mungkin menunjukkan isu dengan pengendalian masa dan fokus. Adalah disyorkan untuk menguji dan menyesuaikan kod agar sesuai dengan aplikasi khusus anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Klik Di Dalam iFrame Merentas Domain Menggunakan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!