Heute ist mein erster Tag mit Firefox Erweiterungen arbeiten.Wie man Code in einer Firefox Extension auf einem Timer ausführen lässt
Grundsätzlich mache ich eine Erweiterung, die in einem internen Netzwerk verwendet wird, um einen Webserver auf neue Benachrichtigungen zu überprüfen.
Ich habe den Assistenten auf der Mozilla-Seite verwendet, um eine Skelett-Erweiterung zu erstellen, und habe dann hauptsächlich overlay.js mit etwas Ajax-Code bearbeitet.
Ich benutze den Ereignis-Listener "load", um einen setTimeout zu meinem Ajax-Aufruf aufzurufen, der dann mit setTimeouts eine Schleife bildet.
Das Problem scheint zu sein, dass der Listener "load" in jedem neuen Browserfenster ausgeführt wird. Ich möchte nur einen globalen Timer, von dem das funktioniert.
Irgendwelche Ideen?
Update:
ich dies gefunden: https://developer.mozilla.org/en/JavaScript_code_modules/Using die wie scheint, was ich möchte. Das Problem ist, ich kann nicht herausfinden, wie Sie die JSM-Datei importieren. Was ist die Verzeichnisstruktur?
Update:
Beim Versuch, diese:
chrome.manifest
content spt chrome/content/
skin spt classic/1.0 chrome/skin/
locale spt en-US chrome/locale/en-US/
overlay chrome://browser/content/browser.xul chrome://spt/content/ff-overlay.xul
style chrome://global/content/customizeToolbar.xul chrome://spt/skin/overlay.css
resource mycontent chrome/content/
ersten 5 Zeilen aus Chrom/content/overlay.js
try{
Components.utils.import("resource://spt/mycontent/ajax.jsm");
}catch(err){
alert(err);
}
ich dieser Fehler:
[Ausnahme ... "Komponente zurückgegeben Fehlercode: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [NsIXPCComponents_Utils.import]" Nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" Speicherort: "JS-Rahmen :: chrome: //spt/content/overlay.js :: :: line 2" Daten: no]
Oder wenn, wenn ich die Ressource alias aus chrome.manifest entfernen und diese
am Anfang overlay.js verwendentry{
Components.utils.import("chrome://spt/content/ajax.jsm");
}catch(err){
alert(err);
}
ich diesen Fehler:
[Ausnahme ... "Komponente Fehlercode zurückgegeben: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIXPCCompo nents_Utils.import] "nsresult:" 0x80070057 (NS_ERROR_ILLEGAL_VALUE) "Speicherort:" JS-Rahmen :: chrome: //spt/content/overlay.js :: :: Zeile 3 "Daten: Nein]
Ich habe die Seite aktualisiert, die Sie gefunden haben, um die Antwort auf Ihre Frage zur Registrierung des Codemoduls einfacher zu finden. Ist es jetzt klarer? – Nickolay
Ja, das ist viel klarer, aber ich kann es immer noch nicht zur Arbeit bringen. Beim Versuch, den Import auszuführen, erhalte ich den Fehler: [Exception ... "Component gab den Fehlercode zurück: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIXPCComponents_Utils.import]" nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)" location: "JS-Frame :: chrome://spt/content/overlay.js :: :: Zeile 3 "Daten: Nein] –
Mike