userScripts.onBeforeScript
Событие onBeforeScript объекта browser.userScripts срабатывает перед выполнением пользовательского скрипта. Оно может быть включено только в скрипте API, зарегистрированном в "user_scripts", где используется для определения того, что пользовательские методы API должны быть экспортированы в пользовательский скрипт.
Синтаксис
browser.userScripts.onBeforeScript.addListener(listener) browser.userScripts.onBeforeScript.removeListener(listener) browser.userScripts.onBeforeScript.hasListener(listener)
События имеют три функции:
addListener(listener)-
Добавляет слушатель к этому событию.
removeListener(listener)-
Прекращает прослушивание этого события. Аргумент
listener— это слушатель, который нужно удалить. hasListener(listener)-
Проверяет, зарегистрирован ли
listenerдля этого события. Возвращаетtrueесли он прослушивает,falseв противном случае.
Синтаксис addListener
Параметры
listener-
Функция, которая вызывается при возникновении этого события. Функции передаются следующие аргументы:
script-
Объект
object, представляющий пользовательский скрипт, который соответствует веб-странице. Его свойства и методы следующие:defineGlobals-
Метод, который экспортирует объект, содержащий свойства и методы, доступные глобально в песочнице пользовательского скрипта. Этот метод должен быть вызван синхронно, чтобы гарантировать, что пользовательский скрипт ещё не выполнился.
export-
Метод, который преобразует значение в такое, к которому может получить доступ код пользовательского скрипта. Этот метод используется в методах API, экспортированных в пользовательский скрипт, для результата или разрешения значений, не являющихся примитивными. Экспортированные объекты также могут предоставлять методы, к которым код пользовательского скрипта может получить доступ и вызвать.
global-
Объект
object, предоставляющий доступ к песочнице для пользовательского скрипта. metadata-
Свойство
scriptMetadata, установленное при регистрации пользовательского скрипта с использованиемuserScripts.register.
Примеры
Пример использования слушателя:
browser.userScripts.onBeforeScript.addListener((script) => { script // This is an API object that represents the user script // that is going to be executed. script.metadata // Access the user script metadata (returns the // value of the scriptMetadata property from // the call to userScripts.register. // Export some global properties into the user script sandbox // (this method has to be called synchronously from the // listener, otherwise the user script may have executed). script.defineGlobals({ aGlobalPropertyAccessibleFromUserScriptCode: "prop value", myCustomAPIMethod(param1, param2) { // Custom methods exported from the API script can use // the WebExtensions APIs available to content scripts. browser.runtime.sendMessage(/* … */); // … return 123; // primitive values can be returned directly // … // Non primitive values have to be exported explicitly // using the export method provided by the script API // object return script.export({ objKey1: { nestedProp: "nestedValue", }, // Explicitly exported objects can also provide methods. objMethod() { /* … */ } }) }, async myAsyncMethod(param1, param2, param3) { // exported methods can also be declared as async }, }); });
Совместимость с браузерами
| Рабочий стол | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | |
onBeforeScript |
Нет | Нет | 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/onBeforeScript