- In your manifest file,
"manifest_version": 2is specified. This automatically activates a stricter mode, in which all extension’s files are not available to web pages by default. - Your original code would never work, because the
<script>element is immediately removed after injection (the script file does not have a chance to load).
As a result of 1., the following error shows up in the console:
Failed to load resource chrome-extension://invalid/
To fix the problem, add script.js to the whitelist, "web_accessible_resources" in your manifest file:
{
"name": "Chrome Extension",
"version": "1.0",
"manifest_version": 2,
"content_scripts": [{
"matches": ["http://pagetoinject/script/into/*"],
"js": ["contentscript.js"]
}],
"web_accessible_resources": ["script.js"]
}