【问题标题】:Chrome.storage.sync.set/get isn't workingChrome.storage.sync.set/get 不工作
【发布时间】: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 了解很少的人才会遇到的问题

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


【解决方案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.中问题。并且在官方文档中有明确说明。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-06
  • 2014-06-23
  • 1970-01-01
  • 2018-05-28
相关资源
最近更新 更多