我已尝试修改我的代码,使其看起来与此answer类似。
您好,尝试异步使用chrome.cookies.getAll
时,我的代码似乎返回一个空数组。可能是我使用不正确,或者url
没有通过。
chrome.history.onVisited.addListener(function(HistoryItem) {
var cookies = {
start: function(callback) {
this.logCookies(HistoryItem.url,callback);
},
logCookies: function(url,callback) {
chrome.cookies.getAll({
'url': url
}, function(cookie) {
console.log(cookie) //log the cookie
});
}
}
cookies.start(function() {
console.log('getting cookies...')
});
});
我希望这不太含糊...我想做的是从当前访问的网站获取所有cookie并进行记录。 (我希望以后删除它们,但现在我想记录找到的每个cookie)。而是返回一个长度为0的空数组,并且getting cookies...
不会显示在控制台中。我不确定自己做错了什么,在我看来我做对了所有事情。我是异步编码的新手,因此不胜感激。谢谢!
答案 0 :(得分:0)
我发现了问题!原来我没有在清单中设置正确的权限,所以我对代码进行了调整以使用Promises
,它可以正常工作!我也删除了每个cookie。
chrome.history.onVisited.addListener(function(HistoryItem) {
var cookies = {
start: function() {
return this.logCookies();
},
logCookies: function() {
return new Promise(function(resolve,reject){
function remove(cookies){
for (var i = 0; i < cookies.length; i++) {
chrome.cookies.remove({url: HistoryItem.url + cookies[i].path, name: cookies[i].name},function(){
console.log('cookie removed!')
});
}
resolve()
}
chrome.cookies.getAll({
'url': HistoryItem.url
}, function(cookies) {
remove(cookies)
});
})
}
}
cookies.start().then(function(){
console.log('removing cookies...')
});
});