см. Редактирование ниже
Вам нужно иметь хотя бы один файл стилей, включенный на вашу страницу, чтобы применить ваши стили content_script
:
<link rel="stylesheet" type="text/css" href="#" />
Поэтому, если у вас нет таблиц стилей, просто добавьте пустой тег link
, как указано выше.
Я знаю, это звучит смешно, но на самом деле это сработало для меня.
EDIT
Для моего сценария характерны две вещи
- Ошибка возникает только по
file
протоколу
- Файлы не
.html
(в моем случае .md
)
Q: Зачем мне нужны таблицы стилей для .md
файлов?
A: content_script
соответствует файлам .md
и вставляет файл js
, который компилирует уценку в html. Стили для сгенерированного HTML.
manifest.json
{
"manifest_version": 2,
"name" : "bug",
"version" : "1.0",
"description" : "bug",
"content_scripts": [
{
"matches": [
"*://*/*.*",
"file:///*/*.*"
],
"css": ["style.css"],
"js": ["script.js"],
"run_at": "document_start",
"all_frames": true
}
]
}
script.js
window.addEventListener('load', function (e) {
var link = document.createElement('link');
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = '#';
document.head.appendChild(link);
}, false);
style.css
body { background: gray; }
Steps
- открыть
file:///1.md
файл
- закомментируйте код внутри
script.js
- перезагрузить расширение
- вернуться к ранее открытому
.md
файлу - изначально стили загружены
- обновить страницу - стили не применяются
Я понимаю, что это крайний случай, но это возможный сценарий для моего расширения, и я просто хотел указать свое решение.