Javascript 是否可以更改Chrome扩展名';是否从弹出窗口中选择设置?
我目前正在编写一个Google 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({ //占位
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;
这确保您正在设置布尔值。这很有效,非常感谢!我还必须进行一些重构,以便在加载保存的数据之前不调用其他函数。