Ereignis, wenn eine Webseite fokussiert wird

Lesezeit: 2 Minuten

Shay Erlichmens Benutzeravatar
Shay Erlichmen

Google Reader verfügt über eine nette Funktion: Wenn Sie von einer anderen Webseite zur Webseite wechseln (und den Seitenfokus festlegen), werden dort die Aktualisierungen angezeigt, die dort gesammelt wurden, während die Seite nicht fokussiert war.
Kurze Frage Nr. 1: Wie haben sie das gemacht?

Ich gehe davon aus, dass sie möglicherweise an die Mausbewegungs- und Tastaturereignisse gebunden sind, da ich kein sofort einsatzbereites Ereignis kenne, das Ihnen diese Fähigkeit verleiht.

Danach zu googeln ist ein Albtraum (Fokus, Tab, Webseite, Benutzer).

Kurze Frage Nr. 2: Gibt es da draußen ein Paket, das mir diese Fähigkeit gibt?

Ich setze das jQuery-Tag als Signal für alle Webentwickler-Ninjas da draußen, aber das Framework interessiert mich nicht wirklich (solange es Javascript ist).

PeeHaas Benutzeravatar
PeeHaa

Versuchen Sie es mit jQuery focus Und blur Funktionen:

$(window).focus(function() {
   console.log('welcome (back)');
});

$(window).blur(function() {
   console.log('bye bye');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Click in and out of this frame to test the focus and blur functions.

  • Der jquery-Fokus verhält sich nicht wie hover(function(), function()) (was schade ist), ich musste mich an das Unschärfeereignis für „focusOut“ binden.

    – Shay Erlichmen

    10. Januar 2011 um 20:53

  • Aight lol. Natürlich hast du recht. Mein Fehler, ich habe die beiden vertauscht. Es sollte sich jedoch so verhalten, wie Sie es gesagt haben 🙂 Wäre eine nette Funktion. Danke, dass du es verbessert und akzeptiert hast :).

    – PeeHaa

    10. Januar 2011 um 21:40 Uhr

Ich habe in FF getestet und document.onfocus wird aufgerufen, wenn ich zu diesem Fenster wechsle.

jAndys Benutzeravatar
jAndy

Verwenden focusin (Fokus) und focusout (Unschärfe) auf der document Objekt:

$(document).bind('focus', function() {
   console.log('welcome (back)');
}).bind('blur', function() {
   console.log('bye bye');
});

  • Ich glaube nicht, dass OP jedes Mal benachrichtigt werden möchte, wenn ein Feld auf der Seite den Fokus erhält. Gerade wenn Sie zu einer Seite wechseln.

    – Ruan Mendes

    10. Januar 2011 um 20:39

Das Gegenteil von Fokus ist Unschärfe.

document.addEventListener("focus", function(){
  console.log("Page in focus")
})

document.addEventListener("blur", function(){
  console.log("Page out of focus")
})

Es gibt einen Unterschied zwischen den in anderen Antworten diskutierten Fokus-/Unschärfeereignissen und der tatsächlichen Sichtbarkeits-API. Die beste Quelle hierfür sind die Dokumente bei MDN: https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API

1451670cookie-checkEreignis, wenn eine Webseite fokussiert wird

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy