通过执行(我的代码的相关摘录)将访问过的域名保存到字典中:
const url = require('url');
let domainDict = {};
let currentDomain;
chrome.tabs.onUpdated.addListener(function(tabid, changeInfo, tab){
chrome.tabs.query({'active' : true, 'currentWindow': true}, function(tabs){
let newUrl = new URL(tabs[0].url);
currentDomain = newUrl.hostname;
domainDict[currentDomain] = currentTimer;
});
});
这使console.log(domainDict);
打印出[object Object]
,无论我添加到字典中的域数是多少。奇怪的是,我似乎能够使用正确的域密钥取出正确的值,但我得到一个警告,每个密钥都需要是唯一的,当我尝试映射并呈现字典时,我得到了它的错误,它在每次迭代时呈现每个键值对。
我已尝试currentDomain = url.format(newUrl.hostname)
,甚至尝试使用函数对其进行字符串化:
currentDomain = urlToString(url.hostname)
function urlToString(url) {
return "Domain: " + url;
}
但这两种解决方案都存在相同的问题和错误。
答案 0 :(得分:0)
根据说明,currentDomain
和url.hostname
似乎不是问题。发生的事情是Chrome控制台正在以对您无用的格式打印字典。
尝试类似:
console.log('My dict ', domainDict);
或者
console.log(JSON.stringfy(domainDict));
你应该看到字典及其键是正确的。