我在调用给定的javascript代码时收到以下错误
"Error in response to tabs.query: ReferenceError: printTabs is not defined"
有人可以帮助我解决这个问题。
var tabinator = {
fillBody: function() {
chrome.tabs.query(
{},
function(tabs) {
for(var i=0; i<tabs.length; i++) {
printTabs(tabs[i].title,tabs[i].id);
}
}
);
},
printTabs:function(x,y,z){
console.log(x+y+z);
}
};
// --- Execution starts here ---
document.addEventListener(
'DOMContentLoaded',
function () {
tabinator.fillBody();
}
);
答案 0 :(得分:0)
由于printTabs
是tabinator
对象中定义的函数。您必须使用tabinator
调用它来引用this
对象。您还必须确保使用变量chrome.tabs.query
将此引用传递给that
的回调函数。
试试这个,
var tabinator = {
fillBody: function() {
var that = this;
chrome.tabs.query(
{},
function(tabs) {
for(var i=0; i<tabs.length; i++) {
that.printTabs(tabs[i].title,tabs[i].id);
}
}
);
},
printTabs:function(x,y,z){
console.log(x+y+z);
}
};
// --- Execution starts here ---
document.addEventListener(
'DOMContentLoaded',
function () {
tabinator.fillBody();
}
);