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
Lepaskan: 2024-12-20 17:11:10
asal
1008 orang telah melayarinya

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

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

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

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!

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