Ho un'estensione, funzionante su Chrome, che controlla la scheda attiva per le modifiche dell'URL.Rileva scheda Modifica URL all'interno di un componente aggiuntivo di Firefox
In particolare, devo rilevare quando l'URL cambia, ma non vi è alcun caricamento o navigazione della nuova pagina. Alcuni siti eseguono questa operazione (ad esempio quando fai clic per visualizzare un altro video su YouTube).
Su Chrome, ho compiuto questo con:
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
if (changeInfo && changeInfo.status == "complete") {
//do stuff here
}
});
Come faccio a rilevare tali cambiamenti in un add-on Firefox?
Mi è stato detto di usare: Listening to events on all tabs, ma non riuscivo a metterlo insieme. Uno dei problemi era che gBrowser
non era definito nell'estensione.
Cosa sto sbagliando?
C'è un modo più semplice?
nsIWebProgressListener - https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIWebProgressListener?redirectlocale=en-US&redirectslug=nsIWebProgressListener#onStatusChange % 28% 29 - l'ho usato qui: https://github.com/Noitidart/Listen-on-Repeat-Youtube-Video-Repeater – Noitidart
thx @Noitidart Questo sembra così eccessivamente complesso per un compito così semplice, ma ok , ho definito l'ascoltatore, come posso collegarlo usando il firefox-addon sdk? non posso fare solo: gBrowser.addProgressListener (progListener); perché non ho accesso ai gBrowser, ho cercato di utilizzare la scheda/utils e fare questo: 'tabs.on ('pronto', la funzione (tab) {var browser = gBrowser.getBrowserForTab (scheda); browser .addProgressListener (progListener); ' ma il browser non è definito – tiagosilva
Non ho molta familiarità con sdk. Il motivo per cui è complesso fornisce molte informazioni importanti su cosa ha causato il cambiamento e perché. Se vuoi semplicemente ascoltare il cambiamento, puoi probabilmente usare un MutationObserver https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver?redirectlocale=en-US&redirectslug=DOM%2FMutationObserver#MutationObserverInit use 'characterData 'e guarda sull'elemento anonimo altrimenti non si innescherà. penso che l'osservatore si disconnetterà dal cambio delle schede, anche se non sono sicuro. https://ask.mozilla.org/question/542/mutation-observer-disconnects-from-anonymous-element – Noitidart