Wykrywanie zmiany zakładek w przeglądarce

0

Zauważyłem, że jak się kliknie w link:

http://www.speedyshare.com/fi[...]6/Honda_Accord_commercial.zip

To mija czas oczekiwania na link do pliko, co jest rzeczą normalną w tego typu serwisach. Zauważyłem jednak, że jak się przełączy przeglądarkę na inną zakładkę, to liczniik czasu jest wstrzymywany, po powrocie na zakładkę ze stroną, licznik biegnie dalej.

W jaki sposób strona może wykrywać to, że zmieniam zakładkę w przeglądarce na inną?

Jak strona jest widoczna, a okno przeglądarki nie jest aktywne, to czas również jest wstrzymywany.

0

Zabawne...

      var seconds=0;
      var decrement=1;

      function onBlur() { decrement=0; }
      function onFocus(){ decrement=1; }
      if (/*@[email protected]*/false) { // check for Internet Explorer
        document.onfocusin = onFocus;
        document.onfocusout = onBlur;
      } else {
        window.onfocus = onFocus;
        window.onblur = onBlur;
      }

      function secondscounter(i)
      {
         if (i>0) seconds=i;
         seconds=seconds-decrement;

Jak widać wykorzystuje się zdarzenia onBlur i onFocus okna - okno traci focus to wartość dekrementacji zostaje ustawiona na zero. Od ilości pozostałych sekund jest odejmowane zero = licznik stoi w miejscu. Ciekawe po co taki bajer zastosowali, akurat to "zabezpieczenie" jest w pełni client-side'owe i można je bez problemu wywalić, odczekać tyle ile się powinno i normalnie pobrać plik.

0

No to chyba oczywiste - żeby pooglądać reklamy :)
Nie wielki czas oczekiwania powoduje, że nie opłaca się z tym kombinować(tj. z kodem). Wygodniej dać okno na bok.

Tym bardziej, że taki serwis raczej nie celuje w geeków, tylko w przeciętnego użytkownika(a czy taki użytkownik np. blokuje kod JS?), który nie zna się na tym :)

Swoją drogą, zastanawia mnie to, jak działa ten licznik jeżeli pobieramy pliki innym programem, nie przeglądarką(przykładem może być chyba jDownloader, nie pamiętam dokładnie).

0

Wszystko opiera się o to, że ten licznik dla serwera nie istnieje. Serwer może sobie najwyżej spisać sobie czas kiedy otworzyłeś stronę, bo po kliknięciu na "free download" żadne dodatkowe zapytanie nie leci. W przypadku używania zewnętrznych programów do obsługi pobierania możliwe że w ogóle nie będzie trzeba czekać (zakładam że po drugiej stronie też jest tak kijowo zaimplementowane). Co do CAPTCHy którą tam trzeba jeszcze przepisać po odczekaniu - myślę że w miarę rozwiązywalna dla komputera, nawet prostymi metodami. Tak więc cały proces można generalnie większym lub mniejszym nakładem pracy zautomatyzować.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0