Google chrome extension 将数据从选项页获取到注入的代码

Google chrome extension 将数据从选项页获取到注入的代码,google-chrome-extension,Google Chrome Extension,我的扩展在我无法控制的现有网页上运行。我想有一个选项页。我还没有弄明白如何从注入的代码中获取选项值。当然,本地存储不是共享的。我已经尝试在两个方向上使用sendRequest/addListener,尽管将值从选项页面推送到注入的代码中要比反过来更好 在开始时,我只是将选项复选框放在代码注入的页面上,这些复选框在localStorage中设置值: 然后我检查代码中的值: if (localStorage.showStuff == ‘true’) { … } 我将复选框代码移动到选项页面,并让它

我的扩展在我无法控制的现有网页上运行。我想有一个选项页。我还没有弄明白如何从注入的代码中获取选项值。当然,本地存储不是共享的。我已经尝试在两个方向上使用sendRequest/addListener,尽管将值从选项页面推送到注入的代码中要比反过来更好

在开始时,我只是将选项复选框放在代码注入的页面上,这些复选框在localStorage中设置值:

然后我检查代码中的值:

if (localStorage.showStuff == ‘true’) { … }
我将复选框代码移动到选项页面,并让它在选项更改时执行sendRequest,并且让我的注入代码有一个消息侦听器,但它没有得到我的背景页面上的消息,但这对我没有帮助。我还尝试让注入的代码将回调传递到选项页,但sendResponse对象似乎只在notify处理程序的持续时间内工作,这并不奇怪,但我不得不尝试一下

现在,我的清单的权限列出了外部页面http://example.com/*和“标签”

我知道我可以做的一件事是通过回调异步查询选项页面,但是如果不进行认真的重写,代码就不能异步工作


欢迎任何和所有想法,提前感谢。

要记住的是,只有背景页面是长期存在的。chrome扩展的其余部分是站点导航期间的临时内容脚本、仅在打开时的选项页面等

因此,您必须使用消息传递,并使用后台页面保存内容。不过,请准备好即将登陆的存储API。这将使事情对你来说容易得多


看看吧

我不熟悉chrome扩展,但当我尝试从后台脚本和选项页写入/读取localstorage时,它工作得非常好

我没有尝试本地存储,但chrome的存储api

看看这个

代码A:集合

chrome.storage.sync.set({'key':'qwe'});
代码B:获取

chrome.storage.sync.get('key', function(response) {
    console.log(response); // 'qwe'
});
你可以把代码A放在后台,把代码B放在选项页,或者反过来。 它们使用相同的存储


这对我有用。我希望你也能到达那里。

因此,如果我理解你的意思,这意味着我的选项页面应该向我的后台页面发送关于选项更改的消息,注入的代码应该向后台页面询问值。在我的例子中,注入的代码似乎和我所在的页面一样长,这就是我所需要的,但无论如何,这仍然给我留下了查询与异步的问题。但是这些信息很有用,我会尝试应用它,谢谢!
chrome.storage.sync.get('key', function(response) {
    console.log(response); // 'qwe'
});