Zaloguj się, aby móc dodać artykuł

Kategorie artykułów
Logowanie


Zapamietaj mnie
Facebook
30.05
30.05.2013 12:37 Damiano
Sprawdzanie czy karta jest aktywna
Witam. A więc pytanie w temacie...

Przykład:
Mam otwarte dwie karty w przeglądarce. Na jednej jest moja strona... I chciałbym aby skrypty JS wykonywały się tylko wtedy jeśli karta z moją stroną jest aktywna...

Czy można to sprawdzić z poziomu JS? Jeśli tak to jak?
 
Komentarze
02.06.2013 21:34

karer
erepu jesli chcesz tak odpisywac to lepiej sobie odpusc. Netykieta obowiazuje takze ciebie wiec nie zgrywaj cwaniaka i zacznij jej przestrzegac.
 
02.06.2013 21:12

erepu
Nie wiem na jakieś przeglądarce testowałeś, ale pod IE na 100% nie będzie działało (e != window.event).
Ale nie warto tego dochodzić bo skrypt wygląda dziwnie, do wyrzucenia.

Oglądnij sobie jeszcze raz flmik od 1:09

Po kodzie który wkleiłeś wnioskuje, że trafiłeś na temat który Ci niebezpośrednio wskazałem w moim pierwszym poście. Gdybyś go PRZECZYTAŁ to znalazłbyś link do tematu, znajduje się on na samej górze:
http://stackoverflow.com/questions/1...rrently-active
A tam odpowiedź która powinna Cię satysfakcjonować w 100%, czyli:
http://www.w3.org/TR/page-visibility/
http://caniuse.com/#feat=pagevisibility
https://developer.mozilla.org/en-US/...Visibility_API
Streszczając masz dostęp do 2 zmiennych które określają status strony:
Kod:
document.hidden
document.visibilityState
Teraz to już powinieneś sobie dać radę. Trudno mi jakoś bardziej pomóc, bo nie wiem co dokładnie tam cudujesz. Po tym że chcesz odświeżać coś co 1 sekundę ( co samo w sobie jest głupim pomysłem) mogę jedynie domniemywać pewnie jakiegoś shoutBox’a ?
 
02.06.2013 15:39

gadeawzuki
Pytanie moze trywialne ale musze je zadać. Podpiąłes jQuery do strony?
 
02.06.2013 10:29

Damiano
nadal nie działa
 
02.06.2013 10:00

hub3rt
pierwsza linia:
Kod html:
setInterval ( "moja_funkcja();" ,  1000 );
zamień na:

Kod html:
setInterval ( 'moja_funkcja()' ,  1000 );
 
02.06.2013 09:51

Damiano
Nie znam się zbyt dobrze na JS i mi nie działa...

Mógłby ktoś dać jakiś przykład? Lub sprawdzić co jest źle w moim kodzie?

Kod php:
        setInterval "moja_funkcja();" ,  1000 );
    function 
moja_funkcja(){
$(
window).on("blur focus", function(e) {
    var 
prevType = $(this).data("prevType");

    if (
prevType != e.type) {   //  reduce double fire issues
        
switch (e.type) {
            case 
"blur":
                break;
            case 
"focus":
      $(
'#odswiez').load(location.href ' #odswiez');
                break;
        }
    }

    $(
this).data("prevType"e.type);
})} 
 
30.05.2013 20:27

erepu




http://bit.ly/18BxBno

Pierwszy wynik
 
30.05.2013 19:02

gadeawzuki
Z tego co się orientuję to chyba na Mozilli FF canvasy mi przestawały działać w momencie przełączenia karty. Taki skrypt sprawdzania czy user jest na karcie da się napisać, ale to by był ruch myszki połączony z jakimś timerem.