Spec-Zone.ru › Web Extensions

contentScripts.register()

Используйте эту функцию для регистрации одного или нескольких скриптов содержимого.

Она принимает один параметр, который является объектом со свойствами, похожими на объекты, указанные в ключе content_scripts манифеста (но обратите внимание, что content_scripts — это массив объектов, в то время как аргумент для register() — это единственный объект).

Это асинхронная функция, которая возвращает Promise.

Синтаксис

let registering = browser.contentScripts.register(
  contentScriptOptions       // object
)

Параметры

contentScriptOptions

object. Объект RegisteredContentScriptOptions, представляющий скрипты содержимого для регистрации. Он имеет синтаксис, похожий на объекты в массиве ключа content_scripts манифеста. Отличия:

  • Имена свойств используют camelCase вместо подчеркивания (например, excludeMatches, а не exclude_matches
  • свойства js и css позволяют регистрировать как строки, так и URL-адреса, поэтому их синтаксис должен отличать эти типы.

Объект RegisteredContentScriptOptions имеет следующие свойства:

allFrames Необязательно

Аналогично all_frames в ключе content_scripts.

cookieStoreId Необязательно

Строка или массив строк. Регистрирует скрипт содержимого в вкладках, относящихся к одному или нескольким идентификаторам хранилища cookie. Это позволяет регистрировать скрипты для всех стандартных или не контекстуальных вкладок, вкладок частного просмотра (если расширение включено в частном просмотре extension is enabled in private browsing), вкладок контекстуальной личности или комбинации перечисленного.

css Необязательно

Массив объектов. Каждый объект имеет либо свойство с именем file, которое является URL-адресом, начинающимся с manifest.json расширения и указывающим на файл CSS для регистрации, либо свойство с именем code, которое является кодом CSS для регистрации.

excludeGlobs Необязательно

Аналогично exclude_globs в ключе content_scripts.

excludeMatches Необязательно

Аналогично exclude_matches в ключе content_scripts.

includeGlobs Необязательно

Аналогично include_globs в ключе content_scripts.

js Необязательно

Массив объектов. Каждый объект имеет либо свойство с именем file, которое является URL-адресом, начинающимся с manifest.json расширения и указывающим на файл JavaScript для регистрации, либо свойство с именем code, которое является кодом JavaScript для регистрации.

matchAboutBlank Необязательно

Аналогично match_about_blank в ключе content_scripts.

matches

Аналогично matches в ключе content_scripts.

runAt Необязательно

Аналогично run_at в ключе content_scripts.

Значение возврата

A Promise, который будет выполнен с объектом contentScripts.RegisteredContentScript, который вы можете использовать для отмены регистрации скриптов содержимого.

В настоящее время скрипты содержимого отменяют регистрацию при выгрузке связанной страницы расширения (из которой были зарегистрированы скрипты содержимого), поэтому вы должны регистрировать скрипт содержимого с страницы расширения, которая сохраняется как минимум до тех пор, пока вы хотите, чтобы скрипты содержимого оставались зарегистрированными.

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari на IOS Samsung Internet
register Нет Нет 59 ? Нет Нет ? ? 59 ? Нет ?
cookieStoreId Нет Нет 97 ? Нет Нет ? ? 97 ? Нет ?

Примеры

В этом примере регистрируется скрипт содержимого defaultCode для всех .org URL-адресов:

const defaultHosts = "*://*.org/*";
const defaultCode = "document.body.innerHTML = '<h1>This page has been eaten<h1>'";

async function register(hosts, code) {

  return await browser.contentScripts.register({
    matches: [hosts],
    js: [{code}],
    runAt: "document_idle"
  });

}

let registered = register(defaultHosts, defaultCode);

Этот код регистрирует файл JS по адресу content_scripts/example.js:

const scriptObj = await browser.contentScripts.register({
  "js": [{file: "/content_scripts/example.js"}],
  "matches": ["<all_urls>"],
  "allFrames": true,
  "runAt": "document_start"
});

Примеры расширений

  • content-script-register

© 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/contentScripts/register

Spec-Zone.ru

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