MozillaPL.org - polskie centrum Mozilli

Główne menu:

Jak migać kartą Firefox na zmianę zawartości DOM?

Projektowanie aplikacji i rozszerzeń opartych na technologiach Mozilla Foundation: XUL, JavaScript, XPCOM, XBL i innych

Moderator: Pomocy?!

Odp: Jak migać kartą Firefox na zmianę zawartości DOM?

Postautor: johny_noc » 07 sierpnia 2013, 21:27

Przeglądarka: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0

Dzieeeeeemkujeeeem :) Teraz proszę o cierpliwość i nie zamykanie tego wątku. Prośbę swą motywuję mordującymi temperaturami, które uniemożliwiają mi skupienie się nad projektem. :-) POZDRAWIAM!
johny_noc
 
Posty: 16
Z nami od: 30 lipca 2013, 17:27

Odp: Jak migać kartą Firefox na zmianę zawartości DOM?

Postautor: johny_noc » 08 sierpnia 2013, 20:02

Przeglądarka: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0

hmmm a jak odświeżyć stronę na wybranej karcie? Tak jak poprzednio - znam index karty :)

Co do migawki oknem: niestety listener napisany w następujący sposób:
Kod: Zaznacz cały
window.addEventListener("sizemodechange", function(){
if ( migaj && window.windowState===window.STATE_MINIMIZED) window.getAttention();
}, false);


nie działa :( Sama funkcja window.getAttention() działa - sprawdziłem. Nie potrafię wykryć stanu nieaktywności okna (nie koniecznie zminimalizowanie ale też nieaktywność okna). Zmienna boolean "migaj" przechowuje informację czy migać oknem/kartą czy nie.

Pomożecie ? :)
johny_noc
 
Posty: 16
Z nami od: 30 lipca 2013, 17:27

Odp: Jak migać kartą Firefox na zmianę zawartości DOM?

Postautor: Mirek » 08 sierpnia 2013, 21:10

Przeglądarka: Mozilla/5.0 (Windows NT 6.0; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0

To się chyba robiło tak, że się łapało zdarzenie, że przeglądarka została zminimalizowana i gdzieś "z boku" się to zapamiętywało (np.: minimized=true; a przy przywracaniu - minimized=false;). I potem dopiero, gdy chciałeś to sprawdzać, to zerkałeś jaki jest stan tej zmiennej (minimized). Ale mogę się mylić - jakoś tego akurat nigdy nie potrzebowałem i nie sprawdzałem. Może google podpowiedzą jakieś lepsze rozwiązanie...

A odświeżyć pewnie da się na co najmniej 10 sposobów, np.:
document.location.reload(); // jak dokopiesz się do dokumentu
tab.reloadTab();
tab.reload();
...
Ale to już mogłeś naprawdę w google poszukać.
Mirek
Moderator
 
Posty: 2156
Z nami od: 09 sierpnia 2007, 20:37

Odp: Jak migać kartą Firefox na zmianę zawartości DOM?

Postautor: johny_noc » 10 sierpnia 2013, 21:41

Przeglądarka: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0

Dzięki za pomoc - szukałem w googlach i jak się okazało nie wszystko działa na silniku Gecko 22 :)

Hmmm dodatek już działa. Brakuje mi tylko jednego elementu... nie ma żadnego event listenera, który będzie uruchamiał funkcję "window.getAttention()" w momencie zminimalizowania okna i zmiennej "migaj=true" :) Szukałem i to efekty:
window.addEventListener nie ma typu listenera "blur" - ten typ dotyczy elementów DOM.

Pomysł ze zmienną odpada, bo sprawdzam tickety co 5 minut i nie mogę odpalać getAttention() co 5 minut bo za 40 minut będzie efekt "świecenia" karty na złoto a nie migania :) Proszę pomóżcie określić mi listenera do blura okna lub możliwość sprawdzenia, że funkcja "getAttention()" już pracuje (już zwraca uwagę użytkownika na okno przeglądarki) :) Dziękuję!

Przepraszam za stertę pytań - uczę się dopiero. :-)
johny_noc
 
Posty: 16
Z nami od: 30 lipca 2013, 17:27

Odp: Jak migać kartą Firefox na zmianę zawartości DOM?

Postautor: johny_noc » 15 sierpnia 2013, 09:46

Przeglądarka: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0

Witam ponownie!

Widzę nie macie pomysłu na mój problem :( Szkoda...
johny_noc
 
Posty: 16
Z nami od: 30 lipca 2013, 17:27

Odp: Jak migać kartą Firefox na zmianę zawartości DOM?

Postautor: Mirek » 16 sierpnia 2013, 13:57

Przeglądarka: Mozilla/5.0 (Windows NT 6.0; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0

Nie odpisuję, bo wg mnie rozwiązanie, które wyżej zasugerowałem powinno działać - tylko brak czasu na sprawdzenie.

W każdym razie chodziło mi o zrobienie czegoś w stylu:
Kod: Zaznacz cały
var zminimalizowane = false;

function czy_zminimalizowane()
{
   if(window.windowState === window.STATE_MINIMIZED)
   {
      zminimalizowane = true;
   }
   else if(window.windowState === window.STATE_MAXIMIZED
     || window.windowState === window.STATE_NORMAL
     || window.windowState === window.STATE_FULLSCREEN) // pewnie powinno być bez tego ostatniego warunku (fullscreen)
   {
      zminimalizowane = false;
//      czy_miganie_bylo_juz_odpalone_po_ostatnim_zminimalizowaniu_okna = false;
   }
}

window.addEventListener("sizemodechange", czy_zminimalizowane, false);


I później, w tej drugiej funkcji (którą odpalasz co 5 min), gdy chcesz wiedzieć, czy okno jest zminimalizowane sprawdzasz tylko wartość zmiennej zminimalizowane.
A żeby nie odpalać w kółko getAttention(), to dorzucasz jeszcze jedną zmienną, w której trzymasz info, czy f-cja była wywoływana (ustawiasz np. na true zaraz po jej wywołaniu), natomiast w chwili przywrócenia okna dodajesz jeszcze tylko polecenie zresetowania tej zmiennej (patrz kod).

Wklepałem na szybko ten kod w konsoli - i wydaję się, że działa jak należy.
Mirek
Moderator
 
Posty: 2156
Z nami od: 09 sierpnia 2007, 20:37

Odp: Jak migać kartą Firefox na zmianę zawartości DOM?

Postautor: johny_noc » 17 sierpnia 2013, 10:58

Przeglądarka: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0

Dziwne, bo Twoja funkcja działa, ale nie działa window.getAttention(). Wprowadziłem alert na minimalizację okna i komunikat się pojawia, więc jest OK. Nie dziala natomiast sama funkcja window.getAttention. Mam Windows 8 x64 i nie wyłączałem funkcji migania okienka. Czy funkcja ta nie została wycofana z silnika Gecko?
johny_noc
 
Posty: 16
Z nami od: 30 lipca 2013, 17:27

Odp: Jak migać kartą Firefox na zmianę zawartości DOM?

Postautor: Mirek » 17 sierpnia 2013, 11:10

Przeglądarka: Mozilla/5.0 (Windows NT 6.0; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0

window.getAttention() u mnie działa, choć nie wiem jak to wygląda w Windows 8 - bo to właściwie funkcja realizowana przez system operacyjny. A może wywołujesz ją w jakimś niewłaściwym kontekście - i np. potrzebujesz handler do odpowiedniego obiektu window lub coś w tym stylu.
Mirek
Moderator
 
Posty: 2156
Z nami od: 09 sierpnia 2007, 20:37

Odp: Jak migać kartą Firefox na zmianę zawartości DOM?

Postautor: johny_noc » 17 sierpnia 2013, 19:33

Przeglądarka: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0

Nie. Ona działa na Windows XP (mój dodatek cały sprawdziłem na komputerze brata). Dziwne, bo np. GG mi miga w pasku zadań, a ta funkcja nie wywołuje niczego hmmm
johny_noc
 
Posty: 16
Z nami od: 30 lipca 2013, 17:27

Poprzednia

Wróć do Programowanie z użyciem technologii Mozilli

Kto jest online

Zarejestrowani użytkownicy: Bing [Bot], dexter, Google [Bot]

Przejdź do powiązanej strony

Nawigacja:

Stopka: