Javascript Chrome扩展:如何使url.hostname成为一个字符串,以便可以用作字典中的键?
我正在通过以下操作将访问的域保存到字典中(我代码的相关摘录): 这使得Javascript Chrome扩展:如何使url.hostname成为一个字符串,以便可以用作字典中的键?,javascript,string,google-chrome,google-chrome-extension,Javascript,String,Google Chrome,Google Chrome Extension,我正在通过以下操作将访问的域保存到字典中(我代码的相关摘录): 这使得console.log(domainDict)仅打印[object object],无论我向字典中添加了多少域。奇怪的是,我似乎能够使用正确的域密钥提取正确的值,但是我得到了一个警告,每个密钥都必须是唯一的,并且我得到了一个错误,当我尝试映射并渲染字典时,它会在每次迭代中渲染每个键值对 我尝试了currentDomain=url.format(newUrl.hostname),甚至尝试使用函数将其字符串化: currentDo
console.log(domainDict)代码>仅打印[object object]
,无论我向字典中添加了多少域。奇怪的是,我似乎能够使用正确的域密钥提取正确的值,但是我得到了一个警告,每个密钥都必须是唯一的,并且我得到了一个错误,当我尝试映射并渲染字典时,它会在每次迭代中渲染每个键值对
我尝试了currentDomain=url.format(newUrl.hostname)
,甚至尝试使用函数将其字符串化:
currentDomain = urlToString(url.hostname)
function urlToString(url) {
return "Domain: " + url;
}
但是,这两种解决方案都会产生相同的问题和bug。从描述来看,currentDomain
和url.hostname
似乎都没有问题。现在的情况是,Chrome控制台正在以一种对您没有用处的格式打印您的词典
尝试以下方法:
console.log('My dict ', domainDict);
或
你应该看到字典和它的键是正确的。1)不需要chrome.tabs.query,只要在它出现时使用changeInfo.url即可2)url
只是一个字符串,不是一个url对象,所以你需要通过新url(changeInfo.url).主机名Ah,console.log(JSON.stringfy(domainDict))
确实让我正确地看到了字典中的所有内容。这意味着我在每次映射迭代中渲染每个键值对的错误是渲染函数中的错误,而不是将它们添加到字典中。我现在就开始看。非常感谢你!
console.log('My dict ', domainDict);
console.log(JSON.stringfy(domainDict));