Подтвердить что ты не робот

Как внедрить CSS с помощью содержимого script в расширение Chrome?

Я пытаюсь внедрить свой CSS из JavaScript, который вводится как содержимое script:

"content_scripts": [
   {
      "matches": ["http://www.google.com/*"],
      "js": ["script.js"]
   }
],

Я нашел аналогичный вопрос о введении CSS, но я столкнулся с проблемой при использовании кода из принятого ответа, Здесь мое содержание script.js:

var link = document.createElement("link");
link.href = chrome.extension.getURL("style.css");
link.type = "text/css";
link.rel = "stylesheet";
document.getElementsByTagName("head")[0].appendChild(link);

После загрузки некоторой страницы это сообщение появляется в консоли:

Отказ от нагрузки хром-расширение://phkgaaiaakklogbhkdnpjncedlbamani/fix.css. Ресурсы должны быть перечислены в файле манифеста web_accessible_resources в порядке для загрузки страниц вне расширения.

Есть ли способ исправить это? Или, может быть, какой-то другой способ вставить CSS из этого файла JavaScript?

Примечание. Я не могу включить таблицу стилей непосредственно из манифеста.

4b9b3361

Ответ 1

Вы можете добавить в поле разрешений манифеста; См. web_accessible_resources. Поэтому вы добавили бы это в манифест:

    , "web_accessible_resources": [
        "fix.css"
    ]

См. также "Программная инъекция" . и insertCSS().

Для большинства приложений забудьте все это createElement и просто добавьте файл CSS в манифест:

"content_scripts": [
   {
      "matches":    ["http://www.google.com/*"],
      "css":        ["fix.css"],
      "js":         ["script.js"]
   }
],

хотя я понимаю, что вы не хотите делать это в этом точном экземпляре.