我知道如何在内容脚本中访问localstorage,但只有一次。我通过sendRequest访问它,但是当我尝试在事件函数中使用此方法时,jvascript文件甚至不加载。 是否可以多次访问选项,例如每当触发onclick事件时? 我查看了谷歌代码网站,发现了使用chrome.extension.connect()在内容脚本和背景之间建立连接的东西。我需要使用它吗?
谢谢!
答案 0 :(得分:1)
实际上,您可以尽可能多地使用sendRequest
,但如果您想以其他方式执行此操作,则可以打开long-lived channel(或我称之为“消息隧道”)内容脚本和背景页面进行沟通。
在内容脚本 中,您可以使用
var port = chrome.extension.connect({name: "myChannel"});
打开一个频道。
然后你可以使用
port.postMessage({message: "This is a message."});
向background page
发送新邮件。
port.onMessage.addListener(function(msg) { })
收听新消息。
在背景页面 ,
chrome.extension.onConnect.addListener(function(port) {
port.onMessage.addListener(function(msg) {
if(port=="myChannel"){
console.log(msg+" from port "+port) //Gives you the message
}
})
})
侦听特定端口中的新消息。