Как отправить сообщение из анонимного скрипта, выполненного с помощью `browser.scripting.executcript`?Javascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Как отправить сообщение из анонимного скрипта, выполненного с помощью `browser.scripting.executcript`?

Сообщение Anonymous »

Я использую browser.scripting.executcipcript () , и мне нужно отправить сообщение в сценарий фона Webext Facker/Service Worker. Обычно это означает использование browser.runtime.sendmessage () , но Browser , как сообщается, не определен в аномиме. Я могу перенести браузер в качестве аргумента сценария вызова, но я считаю, что он будет сериализован, и я не уверен, что он пережил прохождение границы.
Вот код:

Код: Выделить всё

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
});
};
}
});
Как я могу получить доступ к объекту браузера в таком анонимном скрипте?

Подробнее здесь: https://stackoverflow.com/questions/796 ... ipting-exe
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»