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?!

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

Postautor: johny_noc » 30 lipca 2013, 17:41

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

Witam!

Przeszukałem już cały Internet i nigdzie nie znalazłem DZIAŁAJĄCEJ metody... Bazowałem na JQuery, "gołym" JavaScript ale nie bawiłem się w C/C++. O co mi chodzi?

Problem do rozwiązania:
Firma w której pracuje posiada swój system kolejkowania zgłoszeń (OTRS-based). W momencie nadejścia nowego zgłoszenia, karta z otwartym systemem zgłoszeń ma "migać", a gdy okno jest zminimalizowane, to migać ma całe okno w pasku zadań. Mój dodatek potrafi już zlokalizować na której karcie znajduje się system OTRS, zapamiętuje jego tabIndex (numer karty). Nawet potrafi odpalić na nowej karcie system kolejkowania zgłoszeń, gdy takowego nie uruchomiono jeszcze. Potrzebuję informacji, albo wręcz wskazówek, jak:

a. wykryć zminimalizowane okienko (mogę na przykład w funkcji sprawdzającej zmiany w elemencie DOM co jakiś czas, sprawdzić, czy okno nie jest zminimalizowane i jeśli jest a nadeszło nowe zgłoszenie, to muszę gdzieś mieć tą informację)
b. Wykryć nieaktywną kartę (mogę na przykład w funkcji sprawdzającej zmiany w elemencie DOM co jakiś czas, sprawdzić, czy karta jest aktywna i jeśli nie jest a nadeszło nowe zgłoszenie, to muszę gdzieś mieć tą informację)
c. W jaki sposób wykorzystać powyższe informacje aby "migać" kartą/oknem.

Niestety nie znalazłem obiektów i ich właściwości (podejrzewam, że będą to obiekty window oraz gBrowser), które pozwolą mi na zmianę zachowania. Alternatywą dla "migającej" karty może być np. zmiana tytułu wyświetlanego na karcie na treść "MASZ NOWE ZGLOSZENIE!".

Będę dźwięczny, jeśli pomożecie mi Mistrzowie Mozilli! :-)

(ważne info: dodatek do Mozilli Firefox, wersja 22.0, metoda: podmiana wyglądu przeglądarki przez plik "overlay.xul" i skrypt "overlay.js" - dodaje tylko menu i obsługę zdarzeń).

DZIĘKUJĘ!
Michał
johny_noc
 
Posty: 16
Z nami od: 30 lipca 2013, 17:27

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

Postautor: dexter » 31 lipca 2013, 12:46

Przeglądarka: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E; InfoPath.3)

Nie używasz Jetpacka?
dexter
Moderator
 
Posty: 8319
Z nami od: 02 października 2004, 21:30

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

Postautor: johny_noc » 31 lipca 2013, 14:53

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

Witaj!

Dziękuję za zainteresowanie się tematem.

Nie. Na Twoje pytanie odpowiem również pytaniem: Cóż to jest jetpack? :)

Pozdrawiam,
Michał
johny_noc
 
Posty: 16
Z nami od: 30 lipca 2013, 17:27

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

Postautor: dexter » 31 lipca 2013, 15:34

Przeglądarka: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E; InfoPath.3)

Powiedzmy, że jetpack to SDK do pisania rozszerzeń bez potrzeby męczenia się z xul-em ;).

https://wiki.mozilla.org/Jetpack
dexter
Moderator
 
Posty: 8319
Z nami od: 02 października 2004, 21:30

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

Postautor: johny_noc » 01 sierpnia 2013, 08:54

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

@dexter

Tylko, że nadal nie wyjaśniłeś mi jak migać kartą :-) nadal moje pytania pozostają aktualne, bo "menu" dodałem w xul'u. Mi chodzi o automatyczną reakcję na wybranej stronie internetowej (na wybranej karcie).

Michał
johny_noc
 
Posty: 16
Z nami od: 30 lipca 2013, 17:27

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

Postautor: dexter » 01 sierpnia 2013, 09:35

Przeglądarka: Mozilla/5.0 (Windows NT 5.1; rv:25.0) Gecko/20130729 Firefox/25.0

Sprawdź jak to jest zrobione w rozszerzeniu ColorfulTabs, w pliku clrtabs.js jest funkcja tablabelblinkcss(). Może to ci coś pomoże.
dexter
Moderator
 
Posty: 8319
Z nami od: 02 października 2004, 21:30

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

Postautor: Mirek » 01 sierpnia 2013, 10:35

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

Też w pełni nie odpowiem, ale z moich zabaw mogę podrzucić komendę do zmiany koloru karty, która mi się zachowała w konsoli:
Kod: Zaznacz cały
gBrowser.mTabContainer.childNodes[0].style.setProperty('background-image','-moz-linear-gradient(rgba(255,255,255,.7),rgba(5,50,50,.5),rgb(5,50,50))');
gBrowser.mTabContainer.childNodes[0].style.setProperty('background-image',''); // powrót do domyślnego

Oraz zasugerować wywoływanie tego przy pomocy workerów lub nsITimera w odpowiednich odstępach czasowych.
W temacie viewtopic.php?p=201574#p201574 wspomniany był jeszcze inny sposób na zmianę koloru kart, ale chyba trzeba go zaktualizować, by działał z nowszymi wersjami Fx.
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 » 01 sierpnia 2013, 11:50

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

Dziękuję Wam za pomoc! Niebawem zajrzę do tego.

Jeszcze pytanie - jak (np. co 30sek) sprawdzić, czy nie zmieniło się drzewo DOM dokumentu (ale konkretnego elementu Div, czy nie dodano wiersza tabeli, w której tekst jest pogrubiony)? Reakcja "migającej karty" ma być właśnie przy nadejściu tego zgłoszenia, a przy aktywacji karty (przełączeniu na system OTRS) karta ma przestać "migać". Tutaj nic nie wymyśliłem niestety a jestem początkujący w tym. :-)

Dziękuję z góry.
johny_noc
 
Posty: 16
Z nami od: 30 lipca 2013, 17:27

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

Postautor: Mirek » 01 sierpnia 2013, 13:34

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

Jeśli co 30 sek. to znów pewnie wymienione przeze mnie wyżej sposoby przy miganiu (np. nsITimer). Albo po prostu przy pomocy jakichś obserwatorów lub ewentualnie listenerów (przestarzałe) - nasłuchujących, gdy zajdzie zmiana w drzewie DOM.

Pewnie znów dobrym pomysłem, będzie podejrzenie jak inni to zrobili - poszukaj np. dodatków ze słowami kluczowymi: notifier, notification(s), notifies.
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 » 01 sierpnia 2013, 16:37

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

Okej - pobawię się i niebawem dam znać o efektach, dziękuję. :-)

Tak jeszcze pytanie... nie miałem wcześniej styczności z Pythonem. Czy po instalacji Pythona jest do niego jakiś edytor języka i czy łatwo zaimplementować SDK od Mozilli? :)

Podejrzewam, że Python bazuje na C++. Am I right? :-)

(Czy istnieje metoda na "zablokowanie karty"? Chodzi mi o to, aby na 1 karcie odpalić OTRSa z linka i aby ta karta była zablokowana - nie można jej przesunąć ani zamknąć ani najlepiej zmienić adresu ręcznie)
Ostatnio zmieniony 01 sierpnia 2013, 20:12 przez johny_noc, łącznie zmieniany 1 raz
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 » 01 sierpnia 2013, 19:07

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

Panowie porażka...

Jetpack (czy raczej Add-on SDK) mówi mi coś takiego:

Kod: Zaznacz cały
Traceback (most recent call last):
  File "resource://gre/modules/NetUtil.jsm", line 137, in
    aCallback(pipe.inputStream, aStatusCode, aRequest);
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/net/url.js",
 line 42, in
    resolve(data);
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 142, in resolve
    while (pending.length) result.then.apply(result, pending.shift())
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 36, in then
    return { then: function then(resolve) { resolve(value) } }
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 116, in resolved
    function resolved(value) { deferred.resolve(resolve(value)) }
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 142, in resolve
    while (pending.length) result.then.apply(result, pending.shift())
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 36, in then
    return { then: function then(resolve) { resolve(value) } }
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 116, in resolved
    function resolved(value) { deferred.resolve(resolve(value)) }
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 142, in resolve
    while (pending.length) result.then.apply(result, pending.shift())
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 36, in then
    return { then: function then(resolve) { resolve(value) } }
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 116, in resolved
    function resolved(value) { deferred.resolve(resolve(value)) }
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 142, in resolve
    while (pending.length) result.then.apply(result, pending.shift())
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 36, in then
    return { then: function then(resolve) { resolve(value) } }
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 116, in resolved
    function resolved(value) { deferred.resolve(resolve(value)) }
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 142, in resolve
    while (pending.length) result.then.apply(result, pending.shift())
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 36, in then
    return { then: function then(resolve) { resolve(value) } }
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 116, in resolved
    function resolved(value) { deferred.resolve(resolve(value)) }
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 142, in resolve
    while (pending.length) result.then.apply(result, pending.shift())
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 122, in then
    else result.then(resolved, rejected)
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 36, in then
    return { then: function then(resolve) { resolve(value) } }
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 116, in resolved
    function resolved(value) { deferred.resolve(resolve(value)) }
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 54, in effort
    try { return f(options) }
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 116, in resolved
    function resolved(value) { deferred.resolve(resolve(value)) }
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 142, in resolve
    while (pending.length) result.then.apply(result, pending.shift())
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 36, in then
    return { then: function then(resolve) { resolve(value) } }
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 116, in resolved
    function resolved(value) { deferred.resolve(resolve(value)) }
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/core/promise
.js", line 54, in effort
    try { return f(options) }
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/addon/runner
.js", line 91, in onLocalizationReady
    run(options);
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/addon/runner
.js", line 123, in run
    let program = main(options.loader, options.main);
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/toolkit/loader.j
s", line 287, in main
    return load(loader, module).exports;
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/toolkit/loader.j
s", line 200, in load
    evaluate(sandbox, module.uri);
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/toolkit/loader.j
s", line 174, in evaluate
    : loadSubScript(uri, sandbox, encoding);
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/anszua-reminder/lib/main.js",
line 1, in
    require("widget").Widget({
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/toolkit/loader.j
s", line 273, in require
    freeze(load(loader, module));
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/toolkit/loader.j
s", line 200, in load
    evaluate(sandbox, module.uri);
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/toolkit/loader.j
s", line 174, in evaluate
    : loadSubScript(uri, sandbox, encoding);
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/widget.js",
line 48, in
    const windowsAPI = require("./windows");
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/toolkit/loader.j
s", line 273, in require
    freeze(load(loader, module));
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/toolkit/loader.j
s", line 200, in load
    evaluate(sandbox, module.uri);
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/toolkit/loader.j
s", line 174, in evaluate
    : loadSubScript(uri, sandbox, encoding);
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/windows.js",
 line 11, in
    module.exports = require('./windows/firefox');
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/toolkit/loader.j
s", line 273, in require
    freeze(load(loader, module));
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/toolkit/loader.j
s", line 200, in load
    evaluate(sandbox, module.uri);
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/toolkit/loader.j
s", line 174, in evaluate
    : loadSubScript(uri, sandbox, encoding);
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/windows/fire
fox.js", line 11, in
    { WindowDom } = require('./dom'),
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/toolkit/loader.j
s", line 273, in require
    freeze(load(loader, module));
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/toolkit/loader.j
s", line 200, in load
    evaluate(sandbox, module.uri);
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/toolkit/loader.j
s", line 174, in evaluate
    : loadSubScript(uri, sandbox, encoding);
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/windows/dom.
js", line 8, in
    const { getMode } = require('../private-browsing/utils');
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/toolkit/loader.j
s", line 273, in require
    freeze(load(loader, module));
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/toolkit/loader.j
s", line 200, in load
    evaluate(sandbox, module.uri);
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/toolkit/loader.j
s", line 174, in evaluate
    : loadSubScript(uri, sandbox, encoding);
  File "resource://jid1-gllfcvywor3e7g-at-jetpack/addon-sdk/lib/sdk/private-brow
sing/utils.js", line 24, in
    pbService = Cc["@mozilla.org/privatebrowsing;1"].
TypeError: Cc['@mozilla.org/privatebrowsing;1'] is undefined
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 » 04 sierpnia 2013, 11:20

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

Witam!

Czy ktoś może mi odpowiedzieć na pytanie:
Czy istnieje metoda na "zablokowanie karty"? Chodzi mi o to, aby na 1 karcie odpalić OTRSa z linka i aby ta karta była zablokowana - nie można jej przesunąć ani zamknąć ani najlepiej zmienić adresu ręcznie
johny_noc
 
Posty: 16
Z nami od: 30 lipca 2013, 17:27

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

Postautor: dexter » 04 sierpnia 2013, 13:45

Przeglądarka: Mozilla/5.0 (Windows NT 6.0; rv:24.0) Gecko/20130716 Firefox/24.0

dexter
Moderator
 
Posty: 8319
Z nami od: 02 października 2004, 21:30

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

Postautor: johny_noc » 04 sierpnia 2013, 14:50

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

Już sobie poradziłem w inny sposób - skanuję co 5 sekund na której karcie jest uruchomiony system OTRS i informuję użytkownika o aktualnym stanie na pasku dodatków. Ale dziękuje :-)

Teraz problem mam innego typu: jak sprawdzić NA KONKRETNEJ KARCIE (znam jej indeks i mam obiekt karty w pamięci) czy we wczytanej treści TEJ KARTY znajduje się element DOM o konkretnym ID oraz jak sprawdzić czy jakiś element tabeli (element DOM) w tej samej treści jest pogrubiony?
Słabo mi idzie wyszukiwanie w google tej treści (szukam już 3h)...
johny_noc
 
Posty: 16
Z nami od: 30 lipca 2013, 17:27

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

Postautor: Mirek » 04 sierpnia 2013, 23:18

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

Mój sposób pewnie jest brzydki, ale skoro masz id karty, to ja ostatnio robiłem coś takiego w ten sposób:
Kod: Zaznacz cały
alert(gBrowser.getBrowserForTab(gBrowser.mTabContainer.childNodes[5]).contentDocument.getElementById("topLogoBox").innerHTML);

Mam nadzieję, że rozgryziesz komendę - ale na wszelki wypadek w skrócie - dla karty z indeksem #5 tworzony jest obiekt gBrowser, przez który dostaję się do zawartości karty, a dalej już jak w zwykłym JS namierzanie węzła po jego ID i wyświetlenie kodu HTML z wnętrza tego elementu. W przykładzie karta ze stroną zawierającą ten wątek była u mnie 5., a dalej wybrałem jakiś pierwszy z brzegu identyfikator - topLogoBox - więc możesz też przetestować na bieżącej stronie.

Z wykrywaniem pogrubienia - musisz podejrzeć html i coś wykombinować w zależności jak to jest zrobione... Może wystarczy sprawdzić klasę węzła, a może "regexpem" przeanalizować kod HTML danego węzła, albo sprawdzić jego dzieci lub jeszcze jakoś inaczej.
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 » 05 sierpnia 2013, 17:15

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

Świetnie! to działa! YOU ARE AWESOME!

Teraz się pobawię z wykrywaniem pogrubienia :) dam znać o efektach lub problemach ;)

EDIT 21:00
UDAŁO SIĘ!

Brakuje ostatecznych elementów, ale w tym celu muszę wiedzieć:
a. Jak migać oknem przeglądarki (w pasku zadań systemu Windows), gdy okno jest zminimalizowane?
b. Jak uniemożliwić użytkownikowi wyłączenie paska statusu przeglądarki (addon-bar) lub sprawdzić czy został ukryty i jeśli tak to włączyć go spowrotem?

DZIĘKI ZA POMOC Z GÓRY! :-)
johny_noc
 
Posty: 16
Z nami od: 30 lipca 2013, 17:27

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

Postautor: teo » 06 sierpnia 2013, 23:33

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

Rozwinięcie paska dodatków uzyskasz stosując kod:
Kod: Zaznacz cały
var addonbar = document.getElementById("addon-bar");
 if (addonbar == "addon-bar")
    toolbar.collapsed = false;
Obrazek
teo
Moderator
 
Posty: 2409
Z nami od: 16 czerwca 2004, 09:15

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

Postautor: Mirek » 07 sierpnia 2013, 00:15

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

Czy powyższy kod na pewno działa? Nie sprawdzałem, ale coś mi w nim nie gra, choć mogę się mylić...
Natomiast co do migania:
Kod: Zaznacz cały
window.getAttention();

PS: @johny_noc: Jeśli zadajesz nowe pytania, to możesz śmiało zamieszczać post pod postem (przynajmniej na tym forum) - bo w przeciwnym razie łatwo przeoczyć, że coś dopisałeś, jeśli zdążyło się przeczytać post przed jego edycją.
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 » 07 sierpnia 2013, 20:11

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

Wydaje mi się, że w ifie warunek powinien wyglądać tak: if (addonbar.id === "addon-bar") :) sprawdzę to jak tylko troszkę temperatury spadną, bo teraz jest katastrofa :(

@Mirek - ta komenda powoduje miganie, czy sprawdza czy okno jest zminimalizowane?
johny_noc
 
Posty: 16
Z nami od: 30 lipca 2013, 17:27

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

Postautor: Mirek » 07 sierpnia 2013, 21:18

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

https://developer.mozilla.org/en-US/doc ... tAttention - jeśli okno nie ma aktualnie focusa (nie ważne czy zminimalizowane, czy nie) - to powinno zamigać - lub zrobić to co dany menedżer okien przewidział na taką okazję.
Natomiast wykrywanie minimalizacji, to przez nasłuchiwanie, czy wystąpiło zdarzenie sizemodechange - https://developer.mozilla.org/en-US/doc ... dow_events
Mirek
Moderator
 
Posty: 2156
Z nami od: 09 sierpnia 2007, 20:37

Następna

Wróć do Programowanie z użyciem technologii Mozilli

Kto jest online

Zarejestrowani użytkownicy: dexter

Przejdź do powiązanej strony

Nawigacja:

Stopka: