如何删除chrome.storage.onChanged Event Listener
How to remove a chrome.storage.onChanged Event Listener?
我认为chrome.storage
API(此处)的文档目前还不清楚。我正在使用此代码添加一个侦听器:
chrome.storage.onChanged.addListener(function(changes, namespace) {
for (key in changes) {
var storageChange = changes[key];
console.log('Storage key "%s" in namespace "%s" changed. ' +
'Old value was "%s", new value is "%s".',
key,
namespace,
storageChange.oldValue,
storageChange.newValue);
}
});
但我该如何删除此侦听器?如何使用chrome.storage.onChanged.removeListener()
方法?
chrome.storage.onChanged.removeListener
将您添加的侦听器函数作为输入,因此为了稍后删除它,您必须将该函数存储在一个变量中。以下代码将起作用:
var myListenerFunction = function(changes, namespace) {
for (key in changes) {
var storageChange = changes[key];
console.log('Storage key "%s" in namespace "%s" changed. ' +
'Old value was "%s", new value is "%s".',
key,
namespace,
storageChange.oldValue,
storageChange.newValue);
}
};
// Add listener
chrome.storage.onChanged.addListener(myListenerFunction);
// Change value, will show output in console.log
chrome.storage.sync.set({'value': 'asd'});
// Remove listener
chrome.storage.onChanged.removeListener(myListenerFunction);
// Change value, will NOT show output in console.log as listener was removed
chrome.storage.sync.set({'value': 'asd123'});
附加阅读-Chrome扩展规范的事件部分-https://developer.chrome.com/extensions/events
我在您提供的页面中没有看到chrome.storage.onChanged.removeListener。
您可以尝试将回调函数分配到一个变量中并将其传递给AddListener吗。然后用它来删除
var changeListener = function(changes, namespace) {
for (key in changes) {
var storageChange = changes[key];
console.log('Storage key "%s" in namespace "%s" changed. ' +
'Old value was "%s", new value is "%s".',
key,
namespace,
storageChange.oldValue,
storageChange.newValue);
}
};
chrome.storage.onChanged.removeListener(changeListner);
相关文章:
- 模拟chrome.storage.local函数使用Jasmine
- chrome.storage.sync未定义错误
- chrome.storage.local.get 如何设置值
- chrome.storage.sync.get未返回值-Angular服务
- 用户可以无需身份验证即可将文件直接上传到 Google Cloud Storage
- 如何使用 electron-json-storage 将 json 发送回 angular
- 同步同步和本地 chrome.storage
- chrome.storage.local["mykey"] is undefined
- Chrome扩展 chrome.storage 如何同时进行大量获取和设置并避免竞争条件
- 显示chrome.storage中的所有内容
- 使用chrome.storage.get获取变量
- 从chrome.storage.local获取基元值
- Chrome扩展:storage.set()不接受变量作为关键字
- chrome.storage.local.set using a variable key name
- 如何使用chrome.storage扩展
- 将客户端生成的密码短语存储在chrome.storage.local中的安全含义
- Chrome.storage:它能持续多久
- Chrome.storage.sync 在重新加载扩展程序时会被覆盖
- 使用 chrome.storage.sync 保存/获取嵌套对象
- 如何删除chrome.storage.onChanged Event Listener