Chrome扩展程序:在内容脚本中多次访问本地存储

时间:2011-07-21 22:12:22

标签: google-chrome google-chrome-extension

我知道如何在内容脚本中访问localstorage,但只有一次。我通过sendRequest访问它,但是当我尝试在事件函数中使用此方法时,jvascript文件甚至不加载。 是否可以多次访问选项,例如每当触发onclick事件时? 我查看了谷歌代码网站,发现了使用chrome.extension.connect()在内容脚本和背景之间建立连接的东西。我需要使用它吗?

谢谢!

1 个答案:

答案 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
        }
    })
})

侦听特定端口中的新消息。