Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengesan Windows Pelayar Tidak Aktif Menggunakan JavaScript?

Bagaimanakah Saya Boleh Mengesan Windows Pelayar Tidak Aktif Menggunakan JavaScript?

Susan Sarandon
Susan Sarandonasal
2024-12-20 17:11:101011semak imbas

How Can I Detect Inactive Browser Windows Using JavaScript?

Mengesan Windows Penyemak Imbas Tidak Aktif

Apabila bekerja dengan JavaScript, ia boleh memberi manfaat untuk menentukan sama ada tetingkap penyemak imbas tidak aktif pada masa ini. Ini membolehkan anda mengoptimumkan prestasi dengan menghentikan tugas yang tidak perlu apabila pengguna tidak melihat halaman.

Menggunakan API Keterlihatan Halaman

Cara yang boleh dipercayai untuk mengesan ketidakaktifan penyemak imbas ialah melalui API Keterlihatan Halaman. API ini menyediakan sifat "tersembunyi" yang menunjukkan sama ada halaman itu kelihatan kepada pengguna atau tidak.

document.addEventListener("visibilitychange", onchange);

Jika sifat "tersembunyi" adalah benar, halaman itu tidak aktif pada masa ini. Anda boleh menggunakan maklumat ini untuk menjeda atau meminimumkan operasi JavaScript dengan sewajarnya.

Keserasian Pelayar

API Keterlihatan Halaman disokong oleh versi terkini penyemak imbas utama, termasuk Chrome, Internet Explorer, Firefox dan Opera.

Mundur untuk Tidak Serasi Pelayar

Untuk penyemak imbas yang tidak menyokong API Keterlihatan Halaman, anda boleh kembali kepada kaedah kabur/fokus. Acara ini kurang dipercayai, tetapi ia boleh memberikan tahap pengesanan asas.

(function() {
  var hidden = "hidden";

  // ... (code for fallbacks to blur/focus)
})();

Contoh Pelaksanaan

Kod di bawah menunjukkan cara menggunakan API Keterlihatan Halaman dan kaedah sandaran untuk mengesan tetingkap penyemak imbas yang tidak aktif:

var hidden = "hidden";

if (hidden in document)
  document.addEventListener("visibilitychange", onchange);
else if ((hidden = "mozHidden") in document)
  document.addEventListener("mozvisibilitychange", onchange);
else if ((hidden = "webkitHidden") in document)
  document.addEventListener("webkitvisibilitychange", onchange);
else if ((hidden = "msHidden") in document)
  document.addEventListener("msvisibilitychange", onchange);
else if ("onfocusin" in document)
  document.onfocusin = document.onfocusout = onchange;
else
  window.onpageshow = window.onpagehide
    = window.onfocus = window.onblur = onchange;

function onchange(evt) {
  var v = "visible", h = "hidden",
      evtMap = {
        focus: v, focusin: v, pageshow: v, blur: h, focusout: h, pagehide: h
      };

  evt = evt || window.event;
  if (evt.type in evtMap)
    document.body.className = evtMap[evt.type];
  else
    document.body.className = this[hidden] ? "hidden" : "visible";
}

// Set the initial state
if (document[hidden] !== undefined)
  onchange({ type: document[hidden] ? "blur" : "focus" });

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Windows Pelayar Tidak Aktif Menggunakan JavaScript?. 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