With a content script you can inject a script tag into the DOM in order to access variables in the original page (as explained in this question).
I want to avoid injecting my code into every page and instead only do that when the user clicks on the extension icon.
When I tried using the same code as for the content script the values were undefined, although the script was inserted correctly.
Is this possible? Otherwise is using a content script and communicating with it the preferred solution?
Here is the code I'm using:
var scr = document.createElement("script"); scr.type="text/javascript"; scr.innerHTML = "setInterval('console.log(window.testVar)', 1000)" document.body.appendChild(scr) Manifest excerpt:
"permissions": [ "tabs", "http://*/*", "https://*/*" ], "background": { "scripts": ["inject.js"] },
window.testVaris undefined if I run inject.js from a background script.