Данные из расширения на веб-страницу для начальной загрузки веб-страницы - Firefox
Создание расширения для и. Исходя из наших требований, нам нужна некоторая информация (ранее сохраненная в хранилище по расширению) от расширения до веб-страницы во время загрузки страницы. Данные, необходимые на веб-странице перед любыми
XHR
триггер запроса с веб-страницы. Это достигается в
Chrome
по следующему коду, но не может получить то же самое для
Firefox
. Данные не поступают на веб-страницу так же быстро, как и в Chrome.
Примечание. Веб-страница - это приложение для реагирования.
Для Chrome (рабочий код)
1 ответ
В Firefox есть еще более быстрый метод: зарегистрируйте динамически сгенерированный код как сценарий содержимого, который запускается в
document_start
а затем предоставляет данные на веб-страницу через
wrappedJSObject
поэтому страница имеет прямой доступ к данным синхронно с самого начала.
фоновый сценарий:
let dataReg;
async function exposeData(data) {
dataReg = await browser.contentScripts.register({
js: [{
code: `wrappedJSObject.__extensionData =
cloneInto(${JSON.stringify(data)}, wrappedJSObject)`,
}],
matches: ['https://your.web.app/*'],
runAt: 'document_start',
});
}
Затем ваше веб-приложение использует
window.__extensionData
напрямую.