Wie lese ich die Datei von der Chrome-Erweiterung?

8

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.

    
Tommz 04.03.2015, 15:17
quelle

1 Antwort

14

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 :

%Vor%

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 .

    
Xan 04.03.2015, 15:21
quelle