Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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扩展名';是否从弹出窗口中选择设置?_Javascript_Google Chrome_Google Chrome Extension - Fatal编程技术网

Javascript 是否可以更改Chrome扩展名';是否从弹出窗口中选择设置?

Javascript 是否可以更改Chrome扩展名';是否从弹出窗口中选择设置?,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我目前正在编写一个Google Chrome扩展,我在某些功能上遇到了问题。我想使用户可以使用chrome.storage.sync通过弹出菜单启用/禁用扩展。然而,我的想法还没有实现 我的代码: //popup.js 函数保存选项(){ var enabled=document.getElementById('enabled')。已选中 chrome.storage.sync.set({ 启用:启用 }) } 函数还原\u选项(){ chrome.storage.sync.get({ //占位

我目前正在编写一个Google Chrome扩展,我在某些功能上遇到了问题。我想使用户可以使用
chrome.storage.sync
通过弹出菜单启用/禁用扩展。然而,我的想法还没有实现

我的代码:

//popup.js
函数保存选项(){
var enabled=document.getElementById('enabled')。已选中
chrome.storage.sync.set({
启用:启用
})
}
函数还原\u选项(){
chrome.storage.sync.get({
//占位符值
已启用:false
},功能(项目){
//如果实际值存在,则使用sub
document.getElementById('enabled')。checked=items.enabled
})
}

插件已启用。

我怎样才能修复未写入的设置?

我相信您的问题不在于
save
方法,而是
get
作为一个值,它不接收对象,而是接收字符串或字符串数组。继续并尝试以下操作:

function restore_options () {
    chrome.storage.sync.get('enabled', function (items) {
        //...
    })
}
这里的结果应该是对象
将包含:

{ "enabled": true }
此外,您可能需要防弹吸气剂,并使用:

document.getElementById('enabled').checked = !!items.enabled;

这确保您正在设置布尔值。

这很有效,非常感谢!我还必须进行一些重构,以便在加载保存的数据之前不调用其他函数。