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. -
Строка или массив строк. Регистрирует скрипт содержимого в вкладках, относящихся к одному или нескольким идентификаторам хранилища 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.
- Имена свойств используют camelCase вместо подчеркивания (например,
Значение возврата
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" });
Примеры расширений
© 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