Spec-Zone.ru › Web Extensions

runtime.getBackgroundPage()

Получает объект Window для страницы фона, работающей внутри текущего расширения. Если страница фона не постоянная (страница событий) и не запущена, страница фона запускается.

Это удобный способ для других привилегированных скриптов расширения получить прямой доступ к области скрипта фона. Это позволяет им получать доступ к переменным или вызывать функции, определенные в этой области. «Привилегированный скрипт» включает скрипты, работающие на страницах настроек, или скрипты, работающие в всплывающих окнах действия браузера или действия страницы, но не включают скрипты контента.

Обратите внимание, что переменные, объявленные с помощью const или let, не отображаются в объекте Window, возвращаемом этой функцией.

Также обратите внимание, что этот метод нельзя использовать в частном окне в Firefox—он всегда возвращает null. Для получения дополнительной информации см. соответствующий баг в bugzilla.

Если страница фона является страницей событий, система гарантирует ее загрузку перед разрешением обещания.

Это асинхронная функция, которая возвращает Promise.

Примечание: В Firefox этот метод нельзя использовать в режиме приватного просмотра — он всегда возвращает null. Для получения дополнительной информации см. ошибку Firefox 1329304.

В Chrome этот метод доступен только для постоянных страниц фона, которые недоступны в Manifest V3, поэтому рассмотрите использование Manifest V2. Подробности см. в этой статье.

Рассмотрите использование runtime.sendMessage() или runtime.connect(), которые правильно работают в обоих вышеуказанных сценариях.

Синтаксис

let gettingPage = browser.runtime.getBackgroundPage()

Параметры

Нет.

Возвращаемое значение

Promise, который будет выполнен с объектом Window для страницы фона, если она есть. Если расширение не включает страницу фона, обещание отклоняется с сообщением об ошибке.

Совместимость с браузером

Рабочий стол Мобильный
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet
getBackgroundPage 22 14
45Если этот метод вызывается со страницы, которая является частью окна приватного просмотра, например, боковой панели в частном окне или всплывающего окна, открытого из частного окна, то он всегда вернёт null.
? 15 14 ? ?
48Если этот метод вызывается со страницы, которая является частью окна приватного просмотра, например, боковой панели в частном окне или всплывающего окна, открытого из частного окна, то он всегда вернёт null.
? 15 ?

Примеры

Предположим, скрипт фона определяет функцию foo():

// background.js

function foo() {
  console.log("I'm defined in background.js");
}

Скрипт, работающий во всплывающем окне действия браузера, может напрямую вызвать эту функцию так:

// popup.js

function onGot(page) {
  page.foo();
}

function onError(error) {
  console.log(`Error: ${error}`);
}

let getting = browser.runtime.getBackgroundPage();
getting.then(onGot, onError);

Примечание: Этот 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/getBackgroundPage

Spec-Zone.ru

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