2016-03-10 6 views
5

Angenommen, in Google Chrome sind 2 Erweiterungen installiert.Das Inhaltsskript wird nicht in iframe auf der Seite einer anderen Erweiterung ausgeführt


1. Erweiterung läuft content.js auf w3.org:

manifest.json:

"content_scripts": [{ 
    "matches": [ "https://www.w3.org/*" ], 
    "all_frames": true, 
    "js": [ "content.js" ] 
}] 

content.js:

alert('content'); 

zweite Erweiterung hat page.html, die w3.org in iframe lädt:

manifest.json:

"web_accessible_resources": ["page.html"] 

seite.html:

<!DOCTYPE html> 
<iframe src="https://www.w3.org/"></iframe> 

Jetzt chrome-extension://2nd-extension-id/page.html in die Adressleiste eingeben. Sie werden w3.com sehen, aber content.js wurde nicht ausgeführt (kein alert() Fenster). Ich sehe keine Fehler in der Konsole.

Die Frage ist: wie Inhalts-Skript in diesem Iframe ausgeführt werden?


I erstellt Chrome issue. Status: WontFix, leider. Aber dies kann in Zukunft geändert werden ...

+0

Sie können einfach nicht. Erweiterungen können nicht in anderen Erweiterungen ausgeführt werden. Wenn man so etwas zulässt, würde es bösartigen Erweiterungen möglich sein, einige sehr schlimme Dinge zu tun. –

+0

@Marc Guiselin, nein. w3.org ist nicht Teil der Erweiterung und läuft in eigenem Kontext mit Standardberechtigungen. – CoolCmd

Antwort

-1

Sie können nicht mit Erweiterungen, aber man könnte etwas ähnlich in Google Apps tun: Sie webview statt iframe verwenden können. Daher können Sie Skript über executeScript Methode injizieren.

+1

"" ist jedoch nur für Chrome Apps und nicht für Erweiterungen verfügbar. – Xan

Verwandte Themen