【问题标题】:How to use chrome.storage extension如何使用 chrome.storage 扩展
【发布时间】:2015-02-19 10:55:05
【问题描述】:

我的扩展弹出页面从沙盒页面和脚本的消息中获取数据。我需要将它存储在 chrome.storage 中,最好使用 storage.sync 方法。我收到此错误: 未捕获的类型错误:无法读取未定义的属性“同步”

我已经在 manifest.json 中添加了存储权限。

...“权限”:[“存储”],... chrome.storage.sync undefined?

Google 还声明不需要背景脚本: https://developer.chrome.com/extensions/storage

引用:您的扩展程序的内容脚本可以直接访问用户数据,而无需后台页面。

我忽略了什么?提前致谢!

function receiveMessage(event) {
        var data = event.data;
        saveToStorage(data);
    };

window.addEventListener("message", receiveMessage, false);

function saveToStorage(data)
{
    if (!data) {
        console.log('Error: No value specified. Nothing saved to storage.');
        return;
    }

    chrome.storage.sync.set({'data': data}, function() {
        console.log('Data saved to storage.');
    });
};

【问题讨论】:

  • 添加新权限后是否重新加载了扩展程序?
  • 您的代码是正确的,您应该可以使用它。虽然使用sync 存储,但由于配额限制,我建议检查chrome.runtime.lastError
  • 另外,看看你是否重新加载了扩展包含你的内容脚本的页面。
  • 重新加载所有内容,现在可以使用了。有时就这么简单,而我就是这么愚蠢:)
  • 我讨厌同样的问题,我确实重新加载了所有内容。

标签: javascript google-chrome-extension google-chrome-storage


【解决方案1】:

请务必在测试新内容之前始终重新加载您的扩展程序。我以前从未重新加载它,因为它没有必要,直到现在:) chrome.runtime.lastError 也派上用场了!

【讨论】:

    猜你喜欢
    • 2017-04-23
    • 2018-05-04
    • 2013-01-17
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 2012-10-07
    • 2020-03-16
    • 2013-12-06
    相关资源
    最近更新 更多