Załóżmy, że w Google Chrome są zainstalowane 2 rozszerzenia.Skrypt zawartości nie działa w elemencie iframe na stronie innego rozszerzenia
1st extension biegnie content.js na w3.org:
manifest.json:
"content_scripts": [{
"matches": [ "https://www.w3.org/*" ],
"all_frames": true,
"js": [ "content.js" ]
}]
content.js:
alert('content');
2-cia przedłużenie page.html, który ładuje w3.org do iframe:
manifest.json:
"web_accessible_resources": ["page.html"]
page.html:
<!DOCTYPE html>
<iframe src="https://www.w3.org/"></iframe>
Teraz wpisz w pasku adresu chrome-extension://2nd-extension-id/page.html
. Zobaczysz stronę w3.com, ale plik content.js nie był uruchomiony (nie ma okna alert()
). Nie widzę błędów w konsoli.
Pytanie brzmi: jak zezwolić na uruchamianie skryptu treści w tym elemencie iframe?
stworzyłem Chrome issue. Status: WontFix, niestety. Ale to można zmienić w przyszłości ...
Po prostu nie możesz. Rozszerzenia nie mogą działać w innych rozszerzeniach. Dopuszczenie takiej rzeczy umożliwi złym rozszerzeniom robienie bardzo złych rzeczy. –
@Marc Guiselin, nie. w3.org nie jest częścią rozszerzenia i działa we własnym kontekście ze standardowymi uprawnieniami. – CoolCmd