Chrome.storage.sync.set/get 不工作
Posted
技术标签:
【中文标题】Chrome.storage.sync.set/get 不工作【英文标题】:Chrome.storage.sync.set/get isn't working 【发布时间】:2015-10-16 17:52:28 【问题描述】:在构建 chrome 扩展程序时可能会遇到的一个常见问题是,每次从 chrome 存储中检索数据时,它都会返回 UNDEFINED。让我举个例子。
var toStore = "This text shall be stored"
//Script saves toStore and callback function provides confirmation
chrome.storage.sync.set("value": toStore, function()console.log("Value Saved!"));
然后一个函数被一个获取值的事件激活:
var storedItem = chrome.storage.sync.get('value', function()
console.log("Value Got! Value is " + value));
或类似的东西,但你在控制台中的结果总是:
Value Got! Value is Undefined
我将向您展示如何避免这种情况。这也适用于 chrome.storage.local.set。
【问题讨论】:
我永远不会认为ar storedItem = chrome.storage.sync.get('value', function() console.log("Value Got! Value is " + value));
会记录除未定义或某些本地定义的变量值以外的任何值。似乎您正在回答一个只有对 javascript 了解很少的人才会遇到的问题
chrome.storage set\get clarification 的可能重复项
【参考方案1】:
当您使用 chrome.store.sync.get 获取存储值时,实际函数不会返回保存的值。相反,它返回 var "data",其中包含存储值的名称-值对:
chrome.storage.sync.get('value', function(data)
console.log("Value Got! Value is " + data.value));
然后将值存储在名为“data.[VALUE-NAME]”的函数中。如果你运行它,你应该得到
Value Got! Value is This text shall be stored
【讨论】:
这不是什么新鲜事。并且已经包含在其他s.o.中问题。并且在官方文档中有明确说明。以上是关于Chrome.storage.sync.set/get 不工作的主要内容,如果未能解决你的问题,请参考以下文章