gpt4 book ai didi

javascript - 类型错误 : browser is undefined (Web Extension Messaging)

转载 作者:行者123 更新时间:2023-11-30 20:30:32 25 4
gpt4 key购买 nike

我正在尝试使用以下代码将我的网页脚本与我的网络扩展的内容脚本进行通信

网页脚本

const browser = window.browser || window.chrome;
browser.runtime.sendMessage(message,
function (response) {
console.log(response);
}
);

但是,我不断收到错误 TypeError: browser is undefined。如果我改用 chrome.runtime.sendMessage() 也是如此。

我该如何使用这个方法?

最佳答案

这里的问题是用户/网页脚本(非特权脚本)出于安全目的无法访问 JavaScript API,并且 browser , chrome是 JavaScript API 的一部分,只能由特权脚本访问,如 Web 扩展的后台脚本和内容脚本(同样,内容脚本无法访问所有 J​​avaScript API)。基本上,如果您需要将数据从网页脚本发送到后台脚本,CustomEvent应该用于将数据发送到充当桥梁的内容脚本,然后使用 browser.runtime.sendMessage 从那里将该数据发送到后台脚本. PFB示例代码

window.onload = function(){
document.dispatchEvent(new CustomEvent("myEvent",{
detail:["Hello","World"]
}));
}

contentscript.js

document.addEventListener("myEvent", function (event) {
browser.runtime.sendMessage({
data: event.detail
});

背景.js

browser.runtime.onMessage.addListener(function (message) {
data = message.data;
// do stuff
});

关于javascript - 类型错误 : browser is undefined (Web Extension Messaging),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50378133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com