我目前正在撰写Google Chrome扩展程序,但我遇到某些功能问题。我想这样做,以便用户可以使用chrome.storage.sync
通过弹出菜单启用/禁用扩展程序。但是,我无法让自己的想法发挥作用。
我的代码:
// popup.js
function save_options () {
var enabled = document.getElementById('enabled').checked
chrome.storage.sync.set({
enabled: enabled
})
}
function restore_options () {
chrome.storage.sync.get({
// placeholder value
enabled: false
}, function (items) {
// sub in the real value if it exists
document.getElementById('enabled').checked = items.enabled
})
}
<div id="container">
<div id="bigButton">
<div id="status">
<!-- should to "plugin is disabled" when disabled -->
<h1>Plugin is enabled.</h1>
</div>
<input type="checkbox" name="enabled" id="enabled"></input>
</div>
<div id="refresh">
<img id="reload" src="img/refresh.png">
</div>
</div>
我怎样才能修复未写入的设置?
答案 0 :(得分:1)
我认为你的问题不在你的save
方法中,而是get
,作为一个值,它不接收对象,而是接收字符串或字符串数组。继续尝试以下内容:
function restore_options () {
chrome.storage.sync.get('enabled', function (items) {
//...
})
}
此处的结果应该是对象items
将包含:
{ "enabled": true }
此外,您可能希望防范吸气剂,并使用:
document.getElementById('enabled').checked = !!items.enabled;
这可以确保您设置布尔值。