google-chrome-extension - 如何从本地存储中获取密钥的值,该密钥存储在浏览器中的 Chrome 扩展程序中
问题描述
我是开发 Chrome 扩展程序的新手。
我正在尝试获取存储在浏览器本地存储(检查-> 应用程序-> 本地存储)中的键之一的值。我想要做的是在我的 Chrome 扩展程序中,当您单击一个按钮时,我只需要它从本地存储中获取在浏览器当前选项卡中打开的页面的值。
这是我正在使用的 JS 函数 -
chrome.storage.local.get(['granted.selected'], function(result) {
console.log('Value currently is ' + result.granted.selected);
});
granted.selected
- 是我要获取其值的键的名称。
执行此操作时,我得到“ Value current is undefined ”,而我希望它获取存储在上述键(granted.selected)中的值。
我需要添加什么才能从我当前打开的选项卡的本地存储中获取该键的值?
简而言之 - 只想从 Chrome 扩展程序访问网页的 localStorage。
任何帮助将不胜感激。谢谢!!
解决方案
chrome.storage.local
不是localStorage
,它是一个完全不同的存储 API。
localStorage
是一个 DOM 存储。
要访问网页的 DOM,您需要一个内容脚本 [1]。
这是弹出脚本或后台脚本中的程序注入示例:
chrome.tabs.executeScript({
code: 'localStorage["keyName"]'
}, ([result] = []) => {
if (!chrome.runtime.lastError) {
console.log(result);
// use the result here inside the callback
}
});
笔记:
- 您需要 manifest.json 中的权限,如[1]中所述。
keyName
是在网页的 devtools“应用程序”面板中看到的键的名称- 扩展的每个部分都有自己的开发工具控制台。
推荐阅读
- cmake - 在 CMake 中,CXX_FLAG、CXXFLAGS 和 CMAKE_CXX_FLAGS 有什么区别
- c# - 为什么调用部署到服务器的服务不返回问题详细信息对象?
- html - 的反面
- security - Jenkins Fortify - XXE 漏洞抑制过滤器
- shell - sh if-else 语句 newer 执行 else 语句
- pytorch - pytorch 的 cifar10 数据集在不同时间加载是否相同?
- recaptcha - 企业 reCaptcha 分数始终为 0。对于隐形 reCaptcha
- javascript - React 尝试将值映射到 SVG,以便动态呈现图标
- ceph - 如何将 BlueStore 与 ceph 分离并单独运行?
- chatbot - AWS Lex 聊天机器人未记录话语(错过和检测到的话语)