首页 > 解决方案 > 如何从本地存储中获取密钥的值,该密钥存储在浏览器中的 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。

任何帮助将不胜感激。谢谢!!

标签: google-chrome-extension

解决方案


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“应用程序”面板中看到的键的名称
  • 扩展的每个部分都有自己的开发工具控制台

推荐阅读