runtime.onConnect
Срабатывает при подключении к процессу расширения или скрипту содержимого.
Синтаксис
browser.runtime.onConnect.addListener(listener) browser.runtime.onConnect.removeListener(listener) browser.runtime.onConnect.hasListener(listener)
События имеют три функции:
addListener(callback)-
Добавляет обработчик к этому событию.
removeListener(listener)-
Прекращает прослушивание этого события. Аргумент
listener— обработчик, который нужно удалить. hasListener(listener)-
Проверяет, зарегистрирован ли
listenerдля этого события. Возвращаетtrue, если прослушивание активное, иfalse, в противном случае.
Синтаксис addListener
Параметры
function-
Функция обратного вызова, которая будет вызвана при наступлении события. Функции будут переданы следующие аргументы:
port-
Объект
runtime.Port, который соединяет текущий скрипт с другим контекстом, к которому он подключается.
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari на iOS | Samsung Internet | |
onConnect |
26 | 14 | 45 | ? | 15 | 14 | ? | ? | 48 | ? | 15 | ? |
Примеры
Этот скрипт содержимого:
- подключается к скрипту фона и сохраняет
Portв переменнойmyPort - прослушивает сообщения на
myPort, и регистрирует их - отправляет сообщения скрипту фона, используя
myPort, когда пользователь нажимает на документ
// content-script.js let myPort = browser.runtime.connect({name:"port-from-cs"}); myPort.postMessage({greeting: "hello from content script"}); myPort.onMessage.addListener((m) => { console.log("In content script, received message from background script: "); console.log(m.greeting); }); document.body.addEventListener("click", () => { myPort.postMessage({greeting: "they clicked the page!"}); });
Соответствующий скрипт фона:
- прослушивает попытки подключения со стороны скрипта содержимого
- при получении попытки подключения:
- сохраняет порт в переменную
portFromCS - отправляет скрипту содержимого сообщение через порт
- начинает прослушивать сообщения, полученные через порт, и регистрирует их
- сохраняет порт в переменную
- отправляет сообщения скрипту содержимого, используя
portFromCS, когда пользователь нажимает на действие расширения в браузере
// background-script.js let portFromCS; function connected(p) { portFromCS = p; portFromCS.postMessage({greeting: "hi there content script!"}); portFromCS.onMessage.addListener((m) => { console.log("In background script, received message from content script") console.log(m.greeting); }); } browser.runtime.onConnect.addListener(connected); browser.browserAction.onClicked.addListener(() => { portFromCS.postMessage({greeting: "they clicked the button!"}); });
Примечание: Этот API основан на API chrome.runtime Chromium. Данная документация взята из runtime.json кода Chromium.
© 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/runtime/onConnect