Можно ли запустить скрипт в контексте веб-страницы до запуска любого из скриптов веб-страницы, используя расширение Chrome?

Я пробовал "run_at": "document_start", но DOM отсутствует, когда расширение получает управление, поэтому я не могу вставить script в head. Кроме того, пытался использовать DOMNodeInserted, но он не срабатывает для head. если я попытаюсь вставить script в первое событие DOMNodeInserted, оно будет выполнено после сценариев веб-страницы.


person actual    schedule 24.11.2012    source источник


Ответы (1)


Корневой элемент всегда существует. Вы можете просто добавить <script> к элементу <html>:

var s = document.createElement('script');
s.textContent = 'console.log("Test");';
document.documentElement.appendChild(s);
s.parentNode.removeChild(s); // Just to clean-up.
person Rob W    schedule 24.11.2012
comment
Нет никакой гарантии относительно порядка выполнения динамически вставленного тега скрипта. Таким образом, этот метод может не сработать через некоторое время. - person tsh; 07.08.2020