Я использую browser.scripting.executcipcript () , и мне нужно отправить сообщение в сценарий фона Webext Facker/Service Worker. Обычно это означает использование browser.runtime.sendmessage () , но Browser , как сообщается, не определен в аномиме. Я могу перенести браузер в качестве аргумента сценария вызова, но я считаю, что он будет сериализован, и я не уверен, что он пережил прохождение границы.
Вот код:
Я использую browser.scripting.executcipcript () , и мне нужно отправить сообщение в сценарий фона Webext Facker/Service Worker. Обычно это означает использование browser.runtime.sendmessage () , но Browser , как сообщается, не определен в аномиме. Я могу перенести браузер в качестве аргумента сценария вызова, но я считаю, что он будет сериализован, и я не уверен, что он пережил прохождение границы. Вот код: [code]await browser.scripting.executeScript({ target: details, world: "MAIN", injectImmediately: true, args: [tabId, frameId], func: (tabId, frameId) => { if (window.history.__pushState) { console.warn("Already injected"); return; } window.history.__pushState = history.pushState; console.log("Injected pushState()"); history.pushState = function(state, unused, url) { // eslint-disable-next-line no-console console.log("Intercepted pushState()", state, unused, url); window.history.__pushState(state, unused, url);
console.log("debug", browser); // `browser` is undefined
browser.runtime.sendMessage({ type: "safari-onhistorystateupdated", state, unused, url }); }; } }); [/code] Как я могу получить доступ к объекту браузера в таком анонимном скрипте?