kcr*_*rca 4 google-chrome-extension
我的扩展程序在我无法控制的现有网页上运行。我想要一个它的选项页面。我还没有弄清楚如何从注入的代码中获取选项值。localStorage当然,\xe2\x80\x99 不是共享的。我\xe2\x80\x99已经尝试在两个方向上使用sendRequest / addListener,尽管将选项页面中的值推送到注入的代码比其他方式\xe2\x80\x98round更好。
一开始,我只是将选项复选框放在所操作的页面(代码注入的页面)上,并且这些复选框在以下位置设置值localStorage:
localStorage.showStuff = !!$(evt.target).attr(\xe2\x80\x98checked\xe2\x80\x99);\nRun Code Online (Sandbox Code Playgroud)\n\n然后我检查代码中的这些值:
\n\nif (localStorage.showStuff == \xe2\x80\x98true\xe2\x80\x99) { \xe2\x80\xa6 }\nRun Code Online (Sandbox Code Playgroud)\n\n我将复选框代码移动到选项页面,并让它sendRequest在选项更改时执行 a 操作,并且我的注入代码有一个消息侦听器,但它没有\xe2\x80\x99t 获取消息(我的后台页面有,但是这对我没有帮助)。我还尝试让注入的代码将回调传递给选项页面,但该sendResponse对象似乎只在通知处理程序的持续时间内工作(这并不奇怪,但我不得不尝试一下)。
现在我的清单\xe2\x80\x99spermissions列出了外部页面 ( "http://example.com/*") 和\xe2\x80\x9ctab\xe2\x80\x9d.
我知道我能做的一件事是通过回调异步查询选项页面,但代码不会\xe2\x80\x99t(并且确实可以\xe2\x80\x99t)异步工作而无需认真重写。
\n\n欢迎任何和所有的想法,提前致谢。
\n我是 chrome 扩展的新手,但是当我尝试从后台脚本和选项页面写入/读取本地存储时,它工作得很好。
我还没有尝试过本地本地存储,但 Chrome 的存储 API 。
看看这个
代码A:(设置)
chrome.storage.sync.set({'key':'qwe'});
Run Code Online (Sandbox Code Playgroud)
代码B:(获取)
chrome.storage.sync.get('key', function(response) {
console.log(response); // 'qwe'
});
Run Code Online (Sandbox Code Playgroud)
您可以将代码 A 放在后台,将代码 B 放在选项页面中,或者反之亦然。他们使用相同的存储。
这对我有用。我希望你也能到达那里。
| 归档时间: |
|
| 查看次数: |
2327 次 |
| 最近记录: |