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()
Параметры
Нет.
Возвращаемое значение
Совместимость с браузером
| Рабочий стол | Мобильный | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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