Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak sprawdzić czy okno jest aktywne ?
wizard144
post 26.10.2010, 11:25:25
Post #1





Grupa: Zarejestrowani
Postów: 138
Pomógł: 3
Dołączył: 4.05.2009

Ostrzeżenie: (0%)
-----


Witam!

Czy ma może ktoś z was pomysł na sprawdzenie czy okno jest aktywne tzn, czy user przebywa w oknie, czy może okno działa "w tle" ?
Go to the top of the page
+Quote Post
thek
post 26.10.2010, 11:54:34
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




O tak... I co jeszcze? Jeśli jest w tle, to ma na upartego ponad wszystkie aplikacje/okna się ustawiać lub chować tak, by nie było go nigdy widać? biggrin.gif Jasssssssne winksmiley.jpg Czy wiesz, że w ten sposób próbujesz wpływać na wyświetlenie aplikacji na poziomie systemu operacyjnego lub przejmowanie kontroli nad przeglądarką (jeśli to tylko browsera i jego okien/kart tyczyłoby)? Weź trochę rozróżniaj zakres możliwości określonych technologii.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
kamil4u
post 26.10.2010, 12:20:37
Post #3





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


Oczywiście, że się da, ale nie w 100%. Możesz zastosować zdarzenie onblur na window
Kod
<html>
<head>

<title>onblur test</title>

<script type="text/javascript">

window.onblur = function(){ alert("Wracaj do mnie - nie ma wychodzenia :)"); };
</script>
</head>

<body>
:)
</body>
</html>


--------------------
Go to the top of the page
+Quote Post
wizard144
post 26.10.2010, 12:23:45
Post #4





Grupa: Zarejestrowani
Postów: 138
Pomógł: 3
Dołączył: 4.05.2009

Ostrzeżenie: (0%)
-----


Heh, raczej mi chodziło o coś takiego że hmmm. Robię (tak o sobie ) chat dla siebie i kumpli bo pracujemy nad pewnym projektem w php. Dosyc duzym.

No i tam laduje tresc na intervale za pomoca ajaxa. Elegancko.

Potem sprawdza z aktualna trescia i jesli sie rozni to wtedy wyskakuje alert (nadeszla nowa wiadomosc) biggrin.gif taki bajer.

No tylko ze skoro ktos JEST w oknie to mu nie potrzebny ten alert - chyba oczy ma to widzi :]

Chcialbym po prostu zeby to sie wyswietlalo tylko w momencie gdy przegladarka dziala sobie w tle lub jak jest zminimalizowana smile.gif


Tyle smile.gif
Go to the top of the page
+Quote Post
erix
post 26.10.2010, 12:24:11
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Czy wiesz, że w ten sposób próbujesz wpływać na wyświetlenie aplikacji na poziomie systemu operacyjnego lub przejmowanie kontroli nad przeglądarką (jeśli to tylko browsera i jego okien/kart tyczyłoby)?

Nie przesadzaj. winksmiley.jpg Sprawdzanie aktywności jest przydatne, chociażby do informowania o nowych wiadomościach. Twarzksiążka coś takiego robi i nikt się z tego powodu nie wkurza. tongue.gif

Samego okna, oczywiście, nie da się sprawdzić, ale nieaktywność na naszej stronie - owszem. Wystarczy sprawdzać, czy przez określony kawałek czasu nie naciśnięto żadnego klawisza, czy nie ruszono szczurem. winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
thek
post 26.10.2010, 12:43:32
Post #6





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Widzisz... i tutaj dochodzimy do braku precyzji słowa "okno aktywne" Okno aktywne to takie, na którym jest ustawiony focus, jest ono ponad innymi, ale nie było mowy o tym, że użytkownik jakąś interakcję przejawia. Może przecież być sytuacja, że user ma okno jako wyświetlane, ale kompletnie nic nie robi. Dodatkowo fraza "okno działa w tle" sugeruje, że chodzi o sprawdzanie na poziomie systemu operacyjnego (okno w tle innych aplikacji lub zminimalizowane). Zresztą sam zobacz sens ostatniego posta autora topica -> "tylko w momencie gdy przegladarka dziala sobie w tle lub jak jest zminimalizowana" i to po prostu samo się narzuca winksmiley.jpg


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
wizard144
post 26.10.2010, 12:53:30
Post #7





Grupa: Zarejestrowani
Postów: 138
Pomógł: 3
Dołączył: 4.05.2009

Ostrzeżenie: (0%)
-----


Ludzie haha.gif

Najlepiej by było gdyby to robiło tak:


Jak user ma zminimalizowane, albo gdzies tam z tylu -> Alert
Jak user jest w oknie -> Brak alertu :]

Wiem ze niestety tak sie nie da, no ale coz.

Moge ewentualnie ustawic czas od ostatniej aktywnosci i pozniej sprawdzac czy po pojawieniu sie nowej wiadomosci czas od ostatniej aktywnosci jest > niz np 5 minut.

Ale nie o takie rozwiazanie mi chodzilo :]
Go to the top of the page
+Quote Post
kamil4u
post 26.10.2010, 13:42:18
Post #8





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


A takie coś:
Kod
<html>
<head>

<title>onblur test</title>

<script type="text/javascript">
var x = false;

function check(){
    x = true; //czy wiadomość <--> x = funckja();
    if(x){
        alert('Komnikat');
        window.focus();
        x = false;
        return true;
    } else {
        setTimeout(check,1000);
    }
}

window.onblur = check;
</script>
</head>

<body>
:)
</body>
</html>


Ten post edytował kamil4u 26.10.2010, 13:42:37


--------------------
Go to the top of the page
+Quote Post
flashdev
post 26.10.2010, 15:30:49
Post #9





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


Cytat(kamil4u @ 26.10.2010, 14:42:18 ) *
A takie coś:
Kod
//...
    x = true; //czy wiadomość <--> x = funckja();
    if(x){
//...
    } else {
//...
    }
//...


Czy to aby na pewno tak miało być?

Cytat(wizard144 @ 26.10.2010, 13:53:30 ) *
Najlepiej by było gdyby to robiło tak:


Kod
var active = false;

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


function obsluzWiadomosc(tresc){
    // np. odtworz dzwiek itp.
    if( !active ){
        alert("przyszla wiadomosc o tresci:\n"+tresc);
    }
}

obsluzWiadomosc() // wywolac za kazdym razem, gdy przyjdzie waidomosc


Ten post edytował flashdev 26.10.2010, 15:40:57


--------------------
Go to the top of the page
+Quote Post
kamil4u
post 26.10.2010, 20:52:13
Post #10





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


@flashdev: W sumie to to samo - fakt, że lepiej zapisane smile.gif


--------------------
Go to the top of the page
+Quote Post
flashdev
post 26.10.2010, 22:00:05
Post #11





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


Cytat(kamil4u @ 26.10.2010, 21:52:13 ) *
@flashdev: W sumie to to samo - fakt, że lepiej zapisane smile.gif


Ok, już zrozumiałem Twój kod - przeczytałem komentarz za "x = true;" smile.gif


--------------------
Go to the top of the page
+Quote Post
#luq
post 26.10.2010, 23:16:01
Post #12





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


Tak btw. wykorzystywanie alertu mnie osobiście się nie podoba, walnij sobie zmianę tytuły strony tak co by było zamiast:
Kod
Moje strona

->
Kod
(1 nowa wiadomość) Moje strona

w dobie kart w przeglądarkach o wiele ładniejsze rozwiązanie imho winksmiley.jpg


--------------------
Moja gra - scraby.io
Go to the top of the page
+Quote Post
wizard144
post 27.10.2010, 12:17:33
Post #13





Grupa: Zarejestrowani
Postów: 138
Pomógł: 3
Dołączył: 4.05.2009

Ostrzeżenie: (0%)
-----


Dzięki wszystkim za pomoc smile.gif

To było raczej 4 fun.smile.gif

Sprawdze i tam poklikam wam kto i jak pomogl ;P

Thx. :]
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.04.2025 - 05:54