javascript - 如何从 chrome 扩展中的多个 HTML 文件访问 chrome 存储

标签 javascript google-chrome-extension

我的 chrome 扩展程序上已经有一个选项页面,我正在尝试在我的扩展程序目录中创建其他几个页面,这些页面需要使用 popup.html 收集的 chrome 存储数据。

我已尝试将新的 HTML 页面添加到 manifest.json 文件中的选项页面属性,但这会阻止加载扩展。在新的非选项 HTML 页面上使用“DOMContentLoaded”事件访问 chrome 存储时,如下所示:

document.addEventListener("DOMContentLoaded", function () {
    getData();
}, false);

function getData() {
    chrome.storage.local.get(['data'], function (result) {
        console.log(result.data);
        setFormData(result.data[0])
    });
}


function setFormData(data){
    console.log(data)
}

我收到这个错误:

未捕获的类型错误:无法读取未定义的属性“本地”

我假设 newHTML.html 没有使用 list 文件,但我很清楚我是如何告诉 list 文件有关 newHTML 的。

这是 list 文件:

{
    "name": "ExtensionName!",
    "version": "1.0",
    "description": "A Chrome Extension!",
    "permissions": ["activeTab", "declarativeContent", "storage","<all_urls>"],
    "background": {
      "scripts": ["background.js"],
      "persistent": false
    },
    "options_page": "formMenu.html",
    "page_action": {
      "default_popup": "popup.html",
      "default_icon": {
        "16": "images/get_started16.png"
      }
    },
    "icons": {
      "16": "images/get_started16.png"
    },
    "manifest_version": 2,
    "content_security_policy": "script-src 'self' https://code.jquery.com https://cdnjs.cloudflare.com https://stackpath.bootstrapcdn.com https://use.fontawesome.com; object-src 'self'",
    "externally_connectable": {
      "ids": ["*"]
    }
  }

最佳答案

当您的代码在您的扩展上下文中运行时,您的代码可以访问 chrome.storage
如果您打开 file://.../newHTML.html,它只是一个普通的 javascript 上下文。

使用 chrome.runtime.getURL("newHTML.html") 获取如下所示的扩展程序 url:chrome-extension://[id]/newHTML.html.

也无需等待 DOMContentLoaded 访问 localStorage。

关于javascript - 如何从 chrome 扩展中的多个 HTML 文件访问 chrome 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56393692/

相关文章:

javascript - 数据表的 ajax.dataSrc 不起作用

javascript - 音频元素源的 HTML5 本地存储 - 这可能吗?

javascript - Chrome 运行时 OnMessage 监听器事件未触发

javascript - Chrome 扩展选项页面不保存值

javascript - 每隔几秒刷新一次外部网页

javascript - AngularJS 遗留集成和包含异步更改 id 的内容不会触发观察者

css - Chrome 扩展程序 popup.html 不再正确显示

google-chrome-extension - 仅允许 Chrome 扩展程序的一个事件实例

javascript:检测滚动结束

javascript - onclick 不适用于 Chrome 扩展?