chrome.storage.sync 保存不正确
chrome.storage.sync not saving properly
我似乎无法弄清楚为什么它在重新加载页面时似乎没有保存(即使它似乎正在将对象保存到存储中。
相关代码如下:
options.js
function saveSettings(){
var settings = {
"blockComments": document.querySelector("input[name='BlockComments']:checked"),
"visualDisplay": document.getElementById("visualDisplay").options[document.getElementById("visualDisplay").selectedIndex],
"shortcut": document.querySelectorAll("[data-shortcut-key] option:checked")
};
// Store options object
chrome.storage.sync.set({"data": settings}, function() {
// Update status to let user know options were saved.
var status = document.getElementById('status');
status.textContent = 'Options saved.';
setTimeout(function() {
status.textContent = '';
}, 2000);
});
}
// This is called on DOMContentReady and is triggered
function restoreSettings(){
chrome.storage.sync.get("data", function(items) {
console.log(items.data); // Returns empty object(s)
});
}
console.log 显示的内容:
不确定为什么它们是空的。有帮助吗?
您正在尝试保存 DOM 个节点(它们不是 JSON-可序列化的)。
提取您需要的属性并保存它们,例如
// Returns true or false
document.querySelector("input[name='BlockComments']).checked
而不是
// Returns an element or nothing depending on its state
document.querySelector("input[name='BlockComments']:checked")
我似乎无法弄清楚为什么它在重新加载页面时似乎没有保存(即使它似乎正在将对象保存到存储中。
相关代码如下:
options.js
function saveSettings(){
var settings = {
"blockComments": document.querySelector("input[name='BlockComments']:checked"),
"visualDisplay": document.getElementById("visualDisplay").options[document.getElementById("visualDisplay").selectedIndex],
"shortcut": document.querySelectorAll("[data-shortcut-key] option:checked")
};
// Store options object
chrome.storage.sync.set({"data": settings}, function() {
// Update status to let user know options were saved.
var status = document.getElementById('status');
status.textContent = 'Options saved.';
setTimeout(function() {
status.textContent = '';
}, 2000);
});
}
// This is called on DOMContentReady and is triggered
function restoreSettings(){
chrome.storage.sync.get("data", function(items) {
console.log(items.data); // Returns empty object(s)
});
}
console.log 显示的内容:
不确定为什么它们是空的。有帮助吗?
您正在尝试保存 DOM 个节点(它们不是 JSON-可序列化的)。
提取您需要的属性并保存它们,例如
// Returns true or false
document.querySelector("input[name='BlockComments']).checked
而不是
// Returns an element or nothing depending on its state
document.querySelector("input[name='BlockComments']:checked")