Spec-Zone.ru › Web Extensions

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 Необязательно

array string. Путь к 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API