Spec-Zone.ru › Web Extensions

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 ? Нет ?

См. также

  • contentScripts

© 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

Spec-Zone.ru

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