2016-07-20 10 views
0

Ich habe eine Chrome-Erweiterung erstellt und baut eine Hilfedokumentation mit Hilfe eines Online-Tool namens Documenter von Revaxarts (http://documenterdocs.revaxarts.com/doc_ca71f4007fd2ed01997a40c61d345e3f/ Beispiel hier) laden die Erweiterung: was es ist, wie es funktioniert und so weiter. Ich möchte dieses Hilfedokument zusammen mit meiner Erweiterung (lokale Dateien) teilen und es über eine Schaltfläche "Hilfe" im Popup-Menü zugänglich machen (in einem neuen Tab/Fenster öffnen).Chrome Extension lokale Seite mit Inline JS

Das Problem ist, dass die HTML-Datei mit dem Tool einige Inline-Javascript innerhalb der HTML <head></html> erstellt, und da ich in frühen Phasen der Programmierung bin und es ist mein erster Versuch mit Chrome-Erweiterungen, kann ich nicht scheinen zu finden Möglichkeit, dies zu tun, oder sogar Informationen, wenn dies überhaupt nicht möglich ist.

Die Hilfedateistruktur ist dies:

rootfolder/asssets/ 
roofolder/index.html 

Wo /assets/ CSS, JS und imgs Dateien.

Ich lese einige der External content, aber ich bin mir nicht ganz sicher, wie und sogar wenn es möglich ist, an meine Bedürfnisse anzupassen. Vielleicht mit Sandbox? Ich habe nicht viel darüber verstanden.

Irgendwelche Ideen?

Antwort

0

Standardmäßig inline scripts will not be executed.

Um diese Richtlinie zu lockern, siehe Relax default policy.

Bis Chrome 45, gab es keinen Mechanismus zum Entspannen der Beschränkungen gegen eine inline JavaScript ausführt. Insbesondere hat das Festlegen einer Skriptrichtlinie, die "unsafe-inline" enthält, keine Auswirkung.

Ab Chrome 46 können Inline-Skripts auf die weiße Liste gesetzt werden, indem der base64-codierte Hash des Quellcodes in der Richtlinie angegeben wird. Diesem Hash muss der verwendete Hash-Algorithmus vorangestellt werden (sha256, sha384 oder sha512). Ein Beispiel finden Sie unter Hash usage for elements.

Allerdings würde ich vorschlagen, dass Sie das Inline-Scripts auf ein externes Scripts, zum Beispiel extrahierten, Ändern Inline-Hörer wie onclick=xxx-Element.addEventListener('click')

+0

Hey Haibara, vielen Dank für die Klarstellung. Als ich Ihren Beitrag gelesen habe, habe ich versucht, eine Schaltfläche für die Datei index.html innerhalb der Erweiterung zu erstellen, und ich denke, es hat funktioniert. Wenn ich auf die Schaltfläche klicke, lädt die Seite in einem neuen Tab kein Problem. Da es sich um eine Seite handelt, die zusammen mit der Erweiterung, der lokalen Datei und nicht in einem Inhaltsskript oder anderem verwendet wird, gibt es kein Problem mit Inline-Javascript. – SoMeGoD