I have tried "run_at": "document_start", but there is no DOM when the extension gets control, so I can not insert the script into head. Also, tried to use DOMNodeInserted, but it is not fired for head. if I try to insert the script on first DOMNodeInserted event, it gets executed after the webpage's scripts.
Asked
Active
Viewed 222 times
3
1 Answers
4
The root element always exist. You can just append the <script> to the <html> element:
var s = document.createElement('script');
s.textContent = 'console.log("Test");';
document.documentElement.appendChild(s);
s.parentNode.removeChild(s); // Just to clean-up.
Rob W
- 341,306
- 83
- 791
- 678
-
There is no guarantee about the executing order of dynamic inserted script tag. So this method may fail in some time. – tsh Aug 07 '20 at 09:50