Когда вы внедряете свой скрипт контента, в манифесте вы можете указать для параметра «run_at» значение «document_start», файлы внедряются после любых файлов из css, но до создания любого другого DOM или запуска любого другого скрипта , Более подробную информацию можно найти здесь .
{
"name": "My extension",
...
"content_scripts": [
{
"matches": ["http://www.google.com/*"],
"css": ["mystyles.css"],
"js": ["jquery.js", "myscript.js"],
"run_at": "document_start"
}
],
...
}
* Отредактировано, добавлен пример. Можно использовать один из типов мутаций типов.
Пример
manifest.json
{
"name": "Content Script test",
"version": "0.1",
"description": "Content Script test",
"content_scripts": [
{
"matches": ["http://*/*"],
"js": ["cs.js"],
"run_at": "document_start",
"all_frames": true
}
]
}
cs.js
document.addEventListener('DOMSubtreeModified', OnSubtreeModified, false);
function OnSubtreeModified(event) {
console.log('Hello from extension!');
document.removeEventListener('DOMSubtreeModified', OnSubtreeModified, false);
}
test.html (где-то в сети)
<html>
<head>
<script>
alert('Hello from Web!');
</script>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
Результаты
У вас будет два оповещения, в порядке:
- Привет из сети!
- Привет от расширения!