【发布时间】:2018-04-29 15:05:11
【问题描述】:
我在尝试在我正在开发的 Chrome 扩展程序中实现 Chrome keyboard shortcuts API 时遇到了一个奇怪的问题。简而言之,我必须按指定的键盘快捷键 2 次才能更改存储的值。
这是我的键盘快捷键监听器:
chrome.commands.onCommand.addListener(function(command) {
chrome.storage.sync.get([command], function(result) {
toggle = result[command];
});
toggle = toggle_value(toggle)
chrome.storage.sync.set({[command]: toggle }, function() {
console.log( {[command]: toggle} );
});
});
还有我的toggle_value() 函数:
function toggle_value(value) {
if(value == 0) {
return 1;
} else if(value == 1) {
return 0;
}
}
我的键盘快捷键监听器接收到清单中设置的 command,从 Chrome synced storage 数据库中获取相同键名的相应值,切换该值,然后使用相同的设置将其设置回 Chrome 同步存储键名。
如前所述,command 键的值只有在连续按下键盘快捷键 2 次后才会真正切换。我花了几个小时调试这个没有运气,请帮助我。
【问题讨论】:
-
Chrome API 是 asynchronous,请参阅链接主题以获取解决方案。
-
@wOxxOm 我不会完全称其为重复项,但您链接的问题确实解决了我在代码中遇到的问题。
-
这里就是一个副本。只要答案适用,它就不必是精确的副本。
标签: javascript google-chrome google-chrome-extension