我正在学习javascript并考虑制作一个chrome扩展程序,用于记录用户访问的每个URL。每个访问过的网址只会存储一次。
这是我的background.js
var sites = [];
function startAction()
{
chrome.tabs.getSelected(null,function(tab) {
var tablink = tab.url;
var len = sites.length();
for(var i = 0;i < len; i++)
{
if(sites[i] == tablink)
{
console.log("Already in list");
}
}
if(i == len)
{
sites[i] = tablink;
console.log("Newly added");
}
});
print();
}
function print()
{
var len = sites.length();
for(var i = 0; i < len; i++)
{
console.log(sites[i]);
}
}
startAction();
但是在运行时,此错误显示在控制台
中 Error in response to tabs.getSelected: TypeError: number is not a function
at startAction
这是什么意思?我使用正确的方法吗?如何克服这个错误?
修改
根据RobW的建议,我将print()
的位置更改为回调函数,并将sites.length()
编辑为sites.length
。错误现在消失了。但是此代码不会打印在控制台中访问的URL。怎么做?