Meine Chrome-Erweiterung verwendet content_scripts
nicht, weil ich den Code nicht auf jeder Seite einfügen möchte. Wenn der Benutzer stattdessen auf die Schaltfläche klickt, öffnet sich ein Popup-Fenster und fügt Code in die Seite ein.
Also, in manifest.json
gibt es einen Berechtigungsblock:
Und in popup.js
gibt es diesen Code:
Das Problem ist, dass einige Websites ein Popup-Fenster mit zusätzlichen Informationen öffnen. Und die URL dieser Popup-Seite ist "about:blank"
. Wenn ich versuche, die Erweiterung zu initialisieren, sehe ich diese Nachricht in der Konsole:
Unchecked runtime.lastError beim Ausführen von tabs.executeScript: Zugriff auf den Inhalt der URL "about: blank" ist nicht möglich. Das Erweiterungsmanifest muss die Berechtigung zum Zugriff auf diesen Host anfordern.
Ich sehe keine Möglichkeit, eine "about:blank"
Seite zu permissions
hinzuzufügen. Und ich möchte wirklich nicht content_scripts
verwenden, nur damit ich die Einstellung match_about_blank
einstellen kann.
Ich habe versucht, "about:blank"
und "about:*
zum permission
hinzuzufügen, und alles, was ich bekomme, ist ein Installationsfehler.
Beim Versuch, diese Erweiterung zu installieren, gab es Warnungen: Die Berechtigung 'about: *' ist unbekannt oder das URL-Muster ist fehlerhaft.
Gibt es eine Lösung?
Update: Hier finden Sie eine Zusammenfassung mit allem, was Sie brauchen . Ein Link zu einer Jsbin-Demo enthalten, aber das Problem ist nicht mit dieser Website speziell. Die Erweiterung wurde ursprünglich in einem Yahoo-Mail-Pop-Out-Fenster getestet, das Sie erhalten, indem Sie eine E-Mail drucken.
Versuchen Sie es mit chrome.tabs.executeScript({ file: "script.js", matchAboutBlank: true })
"Wenn matchAboutBlank true ist, dann wird der Code auch in die Frames about: blank und about: srcdoc eingefügt, wenn Ihre Erweiterung Zugriff auf ihr übergeordnetes Dokument hat. Code kann nicht in der obersten Ebene über: -frames eingefügt werden ist falsch. "
Tags und Links javascript google-chrome google-chrome-extension