Ich habe popup.html, wo popup.js aufgerufen wird, wenn das Popup geladen wird, indem ich auf browser action klicke. Dort injiziere ich programmatisch Content Scripts mit chrome.tabs.executeScript()
. Ich muss ein Element an den Körper der Seite anhängen. Wie kann ich HTML-Code aus einer anderen .html-Datei in die Erweiterung einfügen, weil es viel einfacher ist, den Code so zu pflegen. Ich dachte darüber nach, in popup.js darauf zuzugreifen (gibt es dafür einen API-Aufruf?) Und dann im code
-Attribut einzufügen, um den Inhaltsskriptcode mit der Zeichenfolge des abgerufenen HTML-Codes einzufügen.
Ich habe einige Methoden gesehen, die XMLHttpRequest
aus dem Inhaltsskript verwenden, aber soll das vermieden werden? Ich habe versucht mit chrome.fileSystem
, aber das ist für Chrome-Apps und nicht Erweiterungen.
Wie bereits erwähnt, handelt es sich nur darum, eine GET-Anfrage an chrome.runtime.getURL("myfile.html")
zu stellen, wobei "myfile.html"
der relative Pfad (vom Stamm der Erweiterung) zur gewünschten Datei ist.
Sie können das mit roher XHR oder, wenn Sie jQuery verwenden, mit $.ajax
machen.
Um dies über ein Inhaltsskript zu tun, müssen Sie es in "web_accessible_resources"
deklarieren.
Da Sie das nicht wollen, gibt es einen anderen Weg (nicht verfügbar für Inhaltsskripte).
Sie können einen HTML5-Dateisystem schreibgeschützt auf Ihre Erweiterungsdateien mit chrome.runtime.getPackageDirectoryEntry
:
Wie Sie sehen können, ist dies wesentlich komplizierter als eine XHR-Anfrage. Man würde das wahrscheinlich nur verwenden, wenn man die Dateien auflisten möchte .
Tags und Links javascript google-chrome google-chrome-extension