Spec-Zone.ru › Web Extensions

userScripts.register()

Этот метод позволяет регистрировать пользовательские скрипты со страниц расширения (например, со страницы фоновых процессов).

Этот метод очень похож на метод API contentScripts.register() (например, оба возвращают промис, который разрешается в объект API с методом unregister() для отмены регистрации скрипта). Однако существуют различия в поддерживаемых параметрах.

Это асинхронный метод, который возвращает Promise.

Синтаксис

const registeredUserScript = await browser.userScripts.register(
  userScriptOptions       // object
);
// …
await registeredUserScript.unregister();

Параметры

userScriptOptions

object. Представляет пользовательские скрипты для регистрации. Имеет синтаксис, аналогичный contentScripts.register().

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

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

Объект JSON, содержащий произвольные метаданные, связанные с зарегистрированными пользовательскими скриптами. Однако, несмотря на произвольность, объект должен быть сериализуемым, чтобы быть совместимым с алгоритмом структурированного клонирования. Эти метаданные используются для передачи данных от скрипта к API script. Например, они могут содержать информацию о подмножестве API, которые необходимо вставить API script. API не использует эти метаданные.

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

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

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

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

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. Шаблоны URL, указанные в matches, должны быть разрешены разрешениями хоста, определенными в свойстве manifest permission, или разрешены пользователем из списка optional_permissions. Например, если matches включает https://mozilla.org/a, скрипт регистрируется только если разрешения хоста включают, например, https://mozilla.org/*. Если шаблон URL не разрешен, вызов регистрации завершается ошибкой "Разрешение отказано для регистрации пользовательского скрипта для ORIGIN".

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

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

В отличие от параметров content script, у объекта userScriptOptions нет свойства CSS. Используйте contentScripts.register() для динамической регистрации и отмены регистрации стилей.

Возвращаемое значение

Промис Promise, который выполняется с объектом RegisteredUserScript, используемым для отмены регистрации пользовательских скриптов.

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

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

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

См. также

  • contentScripts.register()
  • RegisteredUserScript.unregister()

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

Spec-Zone.ru

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