scripting.insertCSS()
Вставляет CSS в страницу.
Примечание: Этот метод доступен в Manifest V3 или выше в Chrome и Firefox 101. В Safari и Firefox 102+, этот метод также доступен в Manifest V2.
Для использования этого API у вас должен быть "scripting" разрешение и разрешение на URL целевой страницы, либо явно как разрешение на хост, либо с помощью разрешения на активную вкладку.
Вы можете вставлять CSS только в страницы, URL которых можно выразить с помощью шаблона соответствия: это означает, что схема должна быть одной из "http", "https" или "file". Это означает, что вы не можете вставлять CSS ни на одну встроенную страницу браузера, такие как about:debugging, about:addons или страницу, открывающуюся при открытии новой пустой вкладки.
Примечание: Firefox разрешает URL в инжектируемых CSS-файлах относительно самого CSS-файла, а не страницы, в которую он инжектируется.
Вставленный CSS можно удалить, вызвав scripting.removeCSS().
Это асинхронная функция, которая возвращает Promise.
Синтаксис
await browser.scripting.insertCSS( details // object )
Параметры
details-
Объект, описывающий CSS для вставки и место его вставки. Он содержит следующие свойства:
-
cssНеобязательно -
string. Строка, содержащая CSS для вставки. Должен быть указан либоcssлибоfiles. -
filesНеобязательно -
arraystring. Путь к CSS-файлу для вставки, относительно корневого каталога расширения. Должен быть указан либоfilesлибоcss. -
originНеобязательно -
string. Источник стиля для вставки, либоUSERлибоAUTHOR. По умолчаниюAUTHOR. target-
scripting.InjectionTarget. Подробная информация о целевом объекте для вставки CSS.
-
Значение возврата
A Promise, который выполняется без аргументов, когда весь CSS вставлен. Если произошла какая-либо ошибка, обещание отклоняется.
Примеры
В этом примере CSS, взятый из строки, вставляется в активную вкладку.
browser.action.onClicked.addListener(async (tab) => { try { await browser.scripting.insertCSS({ target: { tabId: tab.id, }, css: `body { border: 20px dotted pink; }`, }); } catch (err) { console.error(`failed to insert CSS: ${err}`); } });
В этом примере CSS загружается из файла (упакованного с расширением) с именем "content-style.css":
browser.action.onClicked.addListener(async (tab) => { try { await browser.scripting.insertCSS({ target: { tabId: tab.id, }, files: ["content-style.css"], }); } catch (err) { console.error(`failed to insert CSS: ${err}`); } });
Совместимость с браузерами
| Рабочий стол | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | |
insertCSS |
88 | 88 | 102 | ? | 74 | 15.4 | ? | ? | 102 | ? | 15.4 | ? |
origin |
88 | 88 | 102 | ? | 74 | Нет | ? | ? | 102 | ? | Нет | ? |
Примечание: Этот API основан на API chrome.scripting Chromium.
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/scripting/insertCSS