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. -
Массив строк идентификаторов хранилища 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, должны быть разрешены разрешениями хоста, определенными в свойстве manifestpermission, или разрешены пользователем из списка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 | ? | Нет | ? |
См. также
© 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