Google chrome extension 为什么chrome.storage会给我[Object]?

Google chrome extension 为什么chrome.storage会给我[Object]?,google-chrome-extension,local-storage,Google Chrome Extension,Local Storage,我制作了一个chrome扩展,用于管理internet历史记录、浏览器cookie等。如果您一周内没有运行它,我会尝试发出通知,因此我使用chrome.storage在您使用扩展时保存时间戳 这是我的密码: (回调是一个空函数) 当我测试这个时,它给了我: [object Object] 为什么这段代码给我的是这个,而不是我保存的时间戳?JSON类型 与chrome中的扩展一样,chrome.storage仅支持JSON兼容类型: 数字,但不是BigInt 弦 布尔值true和fa

我制作了一个chrome扩展,用于管理internet历史记录、浏览器cookie等。如果您一周内没有运行它,我会尝试发出通知,因此我使用
chrome.storage
在您使用扩展时保存时间戳


这是我的密码:

(回调是一个空函数)



当我测试这个时,它给了我:

[object Object]
为什么这段代码给我的是这个,而不是我保存的时间戳?

JSON类型 与chrome中的扩展一样,chrome.storage仅支持JSON兼容类型:

  • 数字,但不是
    BigInt
  • 布尔值
    true
    false
  • null
    但不
    未定义
  • 由上述简单类型组成的对象/数组
    • 可以嵌套
    • 不能有循环自引用
    • 键必须是字符串,而不是
      Symbol
    • 不受支持的部分将被剥离,因此复杂类型将产生
      {}
它不支持DOM元素、类实例、集合、映射、RegExp、日期等。
这些将存储为
{}

要查看实际存储的内容,请在代码或devtools控制台中运行以下命令:

console.log(JSON.parse(JSON.stringify(obj)))
可能的解决办法 Store Date.now()是一个数字:

chrome.storage.local.set({key:Date.now()})
要重新创建日期,请执行以下操作:

chrome.storage.local.get('key',data=>{
日志(新日期(data.key));
})
媒体对象的替代方案
  • 转换为数据URI字符串
  • 转换为ArrayBuffer并存储在IndexedDB

注意:不要在console.log中使用
+
连接字符串和对象。像这样使用
console.log('值设置为',现在)

如何存储MediaStream对象?派生自navigator.mediaDevices.getUserMedia({video:true})异步返回无法存储的MediaStream objectStreams,但可以将内容提取为数据URI或ArrayBuffer。
chrome.storage.local.get(["key"], function(result) {
alert (result.key)
});
[object Object]