Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Mengesan Klik Di Dalam Iframe Merentas Domain dengan Amanah?

Bagaimanakah Saya Boleh Mengesan Klik Di Dalam Iframe Merentas Domain dengan Amanah?

Barbara Streisand
Lepaskan: 2024-11-30 15:30:11
asal
1035 orang telah melayarinya

How Can I Reliably Detect Clicks Inside a Cross-Domain Iframe?

Cara Mengesan Klik Pengguna dalam Iframe

Cabaran:

Menentukan sama ada pengguna telah mengklik dalam iframe boleh mencabar, terutamanya apabila iframe berasal dari domain yang berbeza (dikenali sebagai domain silang iframes).

Penyelesaian:

Untuk mengesan klik dalam iframe, penyelesaian yang bijak boleh digunakan menggunakan div halimunan yang diletakkan betul-betul di atas sempadan iframe. Apabila pengguna mengklik di mana-mana dalam iframe, div memintas acara klik dan memajukannya ke iframe.

Pelaksanaan:

Dalam dokumen utama, cipta yang berikut elemen:

<div>
Salin selepas log masuk

Kemudian, masukkan JavaScript berikut kod:

const message = document.getElementById("message");

window.focus();

window.addEventListener("blur", () => {
  setTimeout(() => {
    if (document.activeElement.tagName === "IFRAME") {
      message.textContent = "clicked " + Date.now();
      console.log("clicked");
    }
  });
}, { once: true });
Salin selepas log masuk

Penjelasan:

  1. window.focus() memastikan bahawa dokumen utama mempunyai fokus untuk membolehkan pendengar acara kabur.
  2. window.addEventListener("kabur", ...) merakam peristiwa kabur, yang berlaku apabila fokus beralih daripada utama document.
  3. Dalam pendengar kabur, setTimeout digunakan untuk melambatkan sedikit pemprosesan acara untuk memastikan penyemak imbas telah mengemas kini keadaan dalamannya.
  4. document.activeElement menyemak sama ada elemen aktif dalam dokumen utama ialah IFRAME, menunjukkan bahawa klik berlaku dalam iframe.
  5. Jika disahkan, teksKandungan div #mesej dikemas kini dengan cap masa semasa dan mesej console.log dipaparkan.

Teknik ini menyediakan cara yang boleh dipercayai untuk menjejak sama ada pengguna telah mengklik dalam iframe, walaupun ia merentas domain.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Klik Di Dalam Iframe Merentas Domain dengan Amanah?. 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