Avatar billede akyhne Nybegynder
29. august 2008 - 12:37 Der er 12 kommentarer og
2 løsninger

Check om vinduet er i focus

Ja, den er der mange der spørger efter, men jeg har ingen reload af siden. Så hvordan finder jeg så ud af om vinduet er i fokus?
Avatar billede akyhne Nybegynder
29. august 2008 - 12:45 #1
Lad os sige jeg har en tæller på en hjemmeside der tæller ned. Når den kommer til nul afspilles en lyd. Det er blot et lille blip. Så hvis jeg ikke lige er ved computeren og har et andet vindue i forgrunden, vil jeg have en popup på siden - blot for at vise på bundlinien at der er sket noget i vinduet (browserikonet blinker). Reload af siden duer ikke!
Avatar billede w13 Novice
29. august 2008 - 12:45 #2
"men jeg har ingen reload af siden" - hvad skulle det gøre? Jeg er ikke helt med.
Avatar billede w13 Novice
29. august 2008 - 12:46 #3
Hvorfor duer reload ikke? :)
Avatar billede w13 Novice
29. august 2008 - 12:47 #4
Altså i Internet Explorer i hvert fald kan du bare bruge window.focus(); for at sætte det i fokus.
Avatar billede akyhne Nybegynder
29. august 2008 - 12:50 #5
Vinduet skal ikke sættes i fokus, og reload duer under alle omstændigheder ikke.
Avatar billede w13 Novice
29. august 2008 - 12:54 #6
Hvorfor ikke? Jeg kender ingen mulighed for at tjekke på fokus.
Avatar billede akyhne Nybegynder
29. august 2008 - 12:55 #7
Det er en chat hvor siden ikke reloades, derfor.
Avatar billede w13 Novice
29. august 2008 - 13:06 #8
Løsningen må være at bruge:

var WindowFocus=true;
window.onblur=function(){
  WindowFocus=false;
}
window.onfocus=function(){
  WindowFocus=false;
}

Så kan du vist bare teste på variablen WindowFocus.
Avatar billede akyhne Nybegynder
29. august 2008 - 13:17 #9
Hmm, virker ikke... WindowFocus forbliver true.
Avatar billede w13 Novice
29. august 2008 - 13:25 #10
Min kode skulle i øvrigt have været:

var WindowFocus=true;
window.onblur=function(){
  WindowFocus=false;
}
window.onfocus=function(){
  WindowFocus=true;
}

men det har du nok set.
Jeg tester lige selv.
Avatar billede w13 Novice
29. august 2008 - 13:27 #11
Dette virker helt fint i både IE7 og FF3:

<html>
<head>
<body>

<script type="text/javascript">
var WindowFocus=true;
window.onblur=function(){
  WindowFocus=false;
}
window.onfocus=function(){
  WindowFocus=true;
}

window.setInterval("alert(WindowFocus);",2000);
</script>
Avatar billede akyhne Nybegynder
29. august 2008 - 13:28 #12
Ja, jeg opdagede selv fejlen i din kode.
Avatar billede w13 Novice
29. august 2008 - 13:35 #13
Tak for point! :)
Avatar billede akyhne Nybegynder
29. august 2008 - 13:39 #14
Velbekomme :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester