tabs.insertCSS()
Вставляет CSS в страницу.
Примечание: При использовании Manifest V3 или выше, используйте scripting.insertCSS() и scripting.removeCSS() для вставки и удаления CSS.
Для использования этого API необходимо иметь разрешение на URL страницы, либо явно как разрешение на хост, либо используя разрешение activeTab.
Вы можете вставить CSS только в страницы, чьи URL можно выразить с помощью шаблона соответствия: это означает, что его схема должна быть одной из "http", "https" или "file". Это означает, что вы не можете вставлять CSS в встроенные страницы браузера, такие как about:debugging, about:addons или страницу, открывающуюся при открытии новой пустой вкладки.
Примечание: Firefox разрешает URL-адреса в вставленных файлах CSS относительно самого файла CSS, а не страницы, в которую он вставлен.
Вставленный CSS можно удалить, снова вызвав tabs.removeCSS().
Это асинхронная функция, которая возвращает Promise (только в Firefox).
Синтаксис
let inserting = browser.tabs.insertCSS( tabId, // optional integer details // object )
Параметры
-
tabIdНеобязательно -
integer. ID вкладки, в которую нужно вставить CSS. По умолчанию активная вкладка текущего окна. details-
Объект, описывающий вставляемый CSS. Он содержит следующие свойства:
-
allFramesНеобязательно -
boolean. Еслиtrue, CSS будет вставлен во все фреймы текущей страницы. Если этоfalse, CSS вставляется только в верхний фрейм. По умолчаниюfalse. -
codeНеобязательно -
string. Код для вставки в виде текстовой строки. -
cssOriginНеобязательно -
string. Может принимать одно из двух значений: "user", чтобы добавить CSS как пользовательский стиль или "author", чтобы добавить его как авторский стиль. Если этот параметр опущен, CSS добавляется как авторский стиль.- "user" позволяет предотвратить переопределение веб-сайтом вставленного вами CSS: см. Порядок каскадирования.
- "author" стили ведут себя так, как будто они появляются после всех авторских правил, указанных на веб-странице. Это поведение включает любые авторские стили, динамически добавленные скриптами страницы, даже если это добавление происходит после завершения вызова
insertCSS.
-
fileНеобязательно -
string. Путь к файлу, содержащему код для вставки. В Firefox относительные URL-адреса разрешаются относительно текущего URL-адреса страницы. В Chrome эти URL-адреса разрешаются относительно базового URL-адреса расширения. Для кроссбраузерной работы вы можете указать путь в виде абсолютного URL-адреса, начинающегося с корня расширения, например:"/path/to/stylesheet.css". -
frameIdНеобязательно -
integer. Фрейм, в который нужно вставить CSS. По умолчанию0(верхний фрейм). -
matchAboutBlankНеобязательно -
boolean. Еслиtrue, код будет вставлен в встроенные фреймы "about:blank" и "about:srcdoc", если ваше расширение имеет доступ к их родительскому документу. Код не может быть вставлен в верхние фреймы about:. По умолчаниюfalse. -
runAtНеобязательно -
extensionTypes.RunAt. Наиболее раннее время вставки кода в вкладку. По умолчанию "document_idle".
-
Возвращаемое значение
A Promise, который будет выполнен без аргументов, когда весь CSS будет вставлен. Если произойдет какая-либо ошибка, обещание будет отклонено с сообщением об ошибке.
Примеры
В этом примере в текущую активную вкладку вставляется CSS, взятый из строки.
let css = "body { border: 20px dotted pink; }"; browser.browserAction.onClicked.addListener(() => { function onError(error) { console.log(`Error: ${error}`); } let insertingCSS = browser.tabs.insertCSS({code: css}); insertingCSS.then(null, onError); });
В этом примере вставляется CSS, загруженный из файла, упакованного с расширением. CSS вставляется во вкладку с ID 2:
browser.browserAction.onClicked.addListener(() => { function onError(error) { console.log(`Error: ${error}`); } let insertingCSS = browser.tabs.insertCSS(2, {file: "content-style.css"}); insertingCSS.then(null, onError); });
Примеры расширений
Совместимость с браузерами
| Рабочие столы | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | |
insertCSS |
ДаДоступно только для использования в Manifest V2. |
14Доступно только для использования в Manifest V2. |
47Доступно только для использования в Manifest V2. |
? | ДаДоступно только для использования в Manifest V2. |
14Доступно только для использования в Manifest V2. |
? | ? | 54Доступно только для использования в Manifest V2. |
? | 15Доступно только для использования в Manifest V2. |
? |
cssOrigin |
39 | 79 | 53 | ? | Нет | Нет | ? | ? | 54 | ? | Нет | ? |
frameId |
39 | 14 | 47 | ? | 26 | Нет | ? | ? | 54 | ? | Нет | ? |
matchAboutBlank |
39 | 14 | Нет | ? | 26 | Нет | ? | ? | Нет | ? | Нет | ? |
runAt |
20 | 79 | 47 | ? | 15 | Нет | ? | ? | 54 | ? | Нет | ? |
Примечание: Этот API основан на API chrome.tabs Chromium. Данная документация получена из tabs.json кода 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/tabs/insertCSS