簡體   English   中英

如何獲取我在chrome.storage中設置的對象數據?

[英]How can get object data that I've set in chrome.storage?

我正在構建一個Chrome擴展程序,並且試圖使用Chrome的chrome.storage API存儲對象的功能。 我已經成功設置了一個對象,但是當我嘗試獲取它時,似乎無法做到這一點。 這可能與chrome.storage無關緊要,而更多與我從JSON對象獲取數據的經驗不足有關。

這是我用來設置存儲對象的代碼。

  var ids = { "a":1234, "b":5678 };
  var obj= {};
  var key = "MyChromeKey";
  obj[key] = ids;
  chrome.storage.sync.set(obj);

當我使用.get ,對象會出現在控制台中,就像我期望的那樣。 但是我無法終生想出如何從中獲得a的價值。

  chrome.storage.sync.get(key,function(result){
    console.log(key,result);      // MyChromeKey > Object {MyChromeKey: Object}
    console.log(result["a"]);     // undefined
    console.log(key,result["a"]); // MyChromeKey undefined
  });

任何幫助將不勝感激。

Chrome的存儲API將返回一個{{“ yourKeyName”:Object}形式的對象,因此要訪問該對象內的值,您必須先通過“ yourKeyName”級別,然后訪問基礎對象。 編輯:以這種格式返回它的原因是因為“您可以給定鍵數組,並且它返回具有所有這些鍵的值的對象。” (感謝SO用戶Barmar !)

result["MyChromeKey"]["a"]適用於您的代碼。

callback函數的result參數是一個標准Javascript對象。

如果只想將其注銷到控制台,請在callback函數中嘗試以下操作:

console.log(result[key]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM