Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome扩展:如何使url.hostname成为一个字符串,以便可以用作字典中的键?_Javascript_String_Google Chrome_Google Chrome Extension - Fatal编程技术网

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));