使用chrome.storage.sync保存/获取嵌套对象

时间:2016-03-16 01:25:17

标签: javascript google-chrome

我正在尝试以chrome格式保存/获取对象。该对象是嵌套的,因为对象的属性本身就是另一个对象。

tag.addEventListener('focus', function(event){
var focused = {};
focused.item = event.target;
console.log("Saving",focused) // 'Saving Object {item: input#un2}' where 'item' is a complete object with all event properties listed
chrome.storage.sync.set(focused, function(){
    chrome.storage.sync.get("focused", function(obj){
        console.log("Retrieved focused",obj)    // 'Retrieved focused Object {}' - 'obj' is an empty object
    });
});

});

我在保存之前显示对象,看起来很好。我可以看到所有的属性和值。但是当我尝试将对象从存储中取出时,它会返回一个空对象。

我在这里看过其他类似的问题,但似乎没有人回答这个问题。

我尝试做的是保存有关焦点的HTML标记的信息,以便其他脚本可以使用(在浏览器操作弹出窗口中)。

1 个答案:

答案 0 :(得分:0)

没关系......看起来你无法将包含函数的对象保存到存储中。布尔值,字符串,数字和键/值对象都可以,但不是函数。

我试图保存包含许多功能的event.target。如果存储只是将函数剥离并保存其余部分会很好,但似乎存在一个函数,整个对象变成一个空对象(' {}')。