Ich portiere eine Chrome-Erweiterung zu Firefox WebExtensions und ich suche nach einer Problemumgehung für chrome.declarativeContent.onPageChanged
.Gibt es ein FF-Äquivalent zu chrome.declarativeContent.onPageChanged?
Meine FF-Webextension enthält eine Seitenaktion, die beim Navigieren auf bestimmten Websites angezeigt werden muss. Keines der Listener in der verfügbaren API scheint dies jedoch zuzulassen.
Insbesondere habe ich versucht:
chrome.runtime.onInstalled.addListener(onChange);
chrome.tabs.onCreated.addListener(onChange);
chrome.tabs.onActivated.addListener(onChange);
chrome.tabs.onUpdated.addListener(onChange);
chrome.webNavigation.onDOMContentLoaded(onChange);
chrome.webNavigation.onCreatedNavigationTarget(onChange);
Gibt es bekannte Abhilfen?
Im Falle eines Content-Skript basierten Ansatz 'onUpdated' Zuhörer möglicherweise nicht einmal benötigt. – Xan
'chrome.tabs.onUpdated.addListener' funktioniert, wenn ich zu verschiedenen Seiten navigiere, aber nicht, wenn ich zuerst eine Registerkarte öffne. Wird meine Problemumgehung unten veröffentlichen! – ktouchie
FYI: Ihr Code wird das Inhaltsskript auf den meisten Seiten mehrmals einfügen und ausführen. Das 'tabs.onUpdated' Ereignis wird oft mehrmals pro Seite mit' tab.status === 'complete' (ein Bug IMO) ausgelöst. Möglich: Suche nach 'changeInfo.url && changeInfo.status === 'complete''. Für einen detaillierteren Blick auf die verfügbaren Ereignisse siehe [changeInfo.status von [tabs.onUpdated.addListener] geht von undefined zu Complete, ohne jemals zum Laden zu gehen] (http://StackOverflow.com/a/39033812/3773011). Der Code in dieser Antwort kann helfen, die verfügbaren Ereignisse zu untersuchen und festzustellen, welche Kriterien für die Situation geeignet sind. – Makyen