With a Google Chrome Extension: Is it possible to remove a content script after it has already been injected into the page?
There are no API methods for reloading content scripts (as far as I know), so I would like to re-inject the script and remove the old one, if possible.
With a Google Chrome Extension: Is it possible to remove a content script after it has already been injected into the page?
There are no API methods for reloading content scripts (as far as I know), so I would like to re-inject the script and remove the old one, if possible.
Share Improve this question asked Aug 28, 2013 at 1:17 AzmisovAzmisov 7,2538 gold badges57 silver badges79 bronze badges2 Answers
Reset to default 12No. You can't "remove" it. Running a content script can have side effects, like declaring variables and functions on the window object, connecting to the background page, or listening to DOM events. If your content script has no side effects, it is identical to not being injected at all.
If you want to re-inject it, simply call executeScript with either a code or source parameter. It can be nice to simply define your injected scripts as functions, then calling .toString() on the functions, and injecting them as raw strings with the "code" argument to executeScript. Arguments to these functions can be inserted as JSON strings, which is even more convenient.
I suppose if you dynamically load the content scripts it's possible to force a page refresh using javascript (window.location.reload()) this time not loading the content scripts