Heim >Web-Frontend >js-Tutorial >Wie kann ich inaktive Browserfenster mithilfe von JavaScript erkennen?

Wie kann ich inaktive Browserfenster mithilfe von JavaScript erkennen?

Susan Sarandon
Susan SarandonOriginal
2024-12-20 17:11:101019Durchsuche

How Can I Detect Inactive Browser Windows Using JavaScript?

Inaktive Browserfenster erkennen

Beim Arbeiten mit JavaScript kann es hilfreich sein, festzustellen, ob das Browserfenster derzeit inaktiv ist. Dadurch können Sie die Leistung optimieren, indem Sie unnötige Aufgaben anhalten, wenn der Benutzer die Seite nicht anzeigt.

Verwendung der Page Visibility API

Eine zuverlässige Möglichkeit, Browser-Inaktivität zu erkennen, ist über die Page Visibility API. Diese API stellt eine „versteckte“ Eigenschaft bereit, die angibt, ob die Seite für den Benutzer sichtbar ist oder nicht.

document.addEventListener("visibilitychange", onchange);

Wenn die „versteckte“ Eigenschaft wahr ist, ist die Seite derzeit nicht aktiv. Sie können diese Informationen verwenden, um JavaScript-Vorgänge entsprechend anzuhalten oder zu minimieren.

Browserkompatibilität

Die Page Visibility API wird von den neuesten Versionen der wichtigsten Browser unterstützt, einschließlich Chrome, Internet Explorer, Firefox und Opera.

Fallback für Inkompatibel Browser

Für Browser, die die Page Visibility API nicht unterstützen, können Sie auf die Unschärfe-/Fokus-Methoden zurückgreifen. Diese Ereignisse sind weniger zuverlässig, können aber eine grundlegende Erkennungsebene bieten.

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

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

Implementierungsbeispiel

Der folgende Code zeigt, wie die Seitensichtbarkeits-API verwendet wird und die Fallback-Methoden zur Erkennung inaktiver Browserfenster:

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" });

Das obige ist der detaillierte Inhalt vonWie kann ich inaktive Browserfenster mithilfe von JavaScript erkennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn