Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript chrome.storage.sync未正确保存_Javascript_Google Chrome Extension_Google Chrome Storage - Fatal编程技术网

Javascript chrome.storage.sync未正确保存

Javascript chrome.storage.sync未正确保存,javascript,google-chrome-extension,google-chrome-storage,Javascript,Google Chrome Extension,Google Chrome Storage,我似乎无法理解为什么在重新加载页面时它似乎没有保存(即使它似乎正在将对象保存到存储中) 以下是相关代码: options.js function saveSettings(){ var settings = { "blockComments": document.querySelector("input[name='BlockComments']:checked"), "visualDisplay": document.getElementById("visualDisplay

我似乎无法理解为什么在重新加载页面时它似乎没有保存(即使它似乎正在将对象保存到存储中)

以下是相关代码:

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")

谢谢,我注意到我可以获取属性,但我尝试获取对象的原因是因为我想修改它(例如,在“选项”页面“重新加载”中,将单选按钮设置为用户保存的按钮,并获取其值).有什么方法可以做到这一点,或者我只是一个属性一个属性地做吗?只需使用您需要的属性集。有点像这里: