Javascript 按ID删除选项卡时出错(chrome扩展名)
我正在尝试创建选项卡管理器扩展。弹出窗口将生成所有打开选项卡的列表。我现在正试图为列表中的每一个选项卡添加一个“关闭”选项。这就是列表的样子 它显示了选项卡ID,我临时将其放在那里只是为了确保它具有正确的ID。见下面的代码:Javascript 按ID删除选项卡时出错(chrome扩展名),javascript,jquery,google-chrome-extension,Javascript,Jquery,Google Chrome Extension,我正在尝试创建选项卡管理器扩展。弹出窗口将生成所有打开选项卡的列表。我现在正试图为列表中的每一个选项卡添加一个“关闭”选项。这就是列表的样子 它显示了选项卡ID,我临时将其放在那里只是为了确保它具有正确的ID。见下面的代码: let allTabs = []; chrome.tabs.query({}, tabs => { allTabs = tabs; displayTabs(); }); function displayTabs() { allTabs.f
let allTabs = [];
chrome.tabs.query({}, tabs => {
allTabs = tabs;
displayTabs();
});
function displayTabs() {
allTabs.forEach(tab => {
$("ul").append("<li class='tab-item'>"+ tab.id + " - " + trimTitle(tab.title) + " <a href='#' class='close-tab' id="+ tab.id +">Close tab</a></li>")
});
}
它从ID属性中获取选项卡ID。我还让它提醒标签ID;因此,当我(例如)关闭时,请尝试用它关闭Extensions
选项卡,我得到:
哪个。。。对我来说似乎是正确的。但我得到了以下错误:
未捕获的TypeError:调用选项卡时出错。删除([integer | array]选项卡ID,可选函数回调):没有匹配的签名
哪个。。。我不明白。它应该是正确的ID,互联网告诉我这是关闭选项卡的方法
任何帮助都将不胜感激。
.attr
返回类型string
的值和chrome.tabs.remove
函数-需要类型为整数或整数数组的第一个参数。来源-
首先将tabId
转换为整数,然后将其传递给remove
函数
$("ul").on("click", "a", function () {
let tabId = +$(this).attr("id"); // <-- or you can use parseInt
alert(tabId);
chrome.tabs.remove(tabId);
});
$(“ul”)。在(“单击”,“a”,函数(){
让tabId=+$(this).attr(“id”);/.attr
返回类型string
的值和chrome.tabs.remove
函数-需要类型整数或整数数组的第一个参数源代码-
首先将tabId
转换为整数,然后将其传递给remove
函数
$("ul").on("click", "a", function () {
let tabId = +$(this).attr("id"); // <-- or you can use parseInt
alert(tabId);
chrome.tabs.remove(tabId);
});
$(“ul”)。在(“单击”,“a”,函数(){
设tabId=+$(this.attr(“id”)/@CarstenLøvboAndersen我很确定我读到回调是可选的。不管怎样,我尝试过了,但仍然得到了相同的错误。谢谢。第一个参数tabId
的类型是integer
。尝试首先将tabId
转换为integer,然后将其传递给remove
。I:echrome.tabs.remove(+tabId)
@randomsour啊!就是这样。谢谢!太棒了!错误是TypeError
与参数类型不匹配有关。事后看来,这是一个非常明显的修复方法。现在我知道下次我收到TypeError
时首先要看哪里了,哈哈。再次感谢!如果你愿意,你可以把它放在正确的答案中,这样我就可以接受&u请注意。@CarstenLøvboAndersen我很确定我读到了回调是可选的。不管怎样,我尝试了回调,但仍然得到了相同的错误。谢谢。第一个参数tabId
的类型是integer
。请尝试首先将tabId
转换为integer,然后将其传递给remove
。I:echrome.tabs.remove(+tabId)
@randomsour啊!就是这样。谢谢!太棒了!错误是TypeError
与参数类型不匹配有关。事后看来,这是一个非常明显的修复方法。现在我知道下次我收到TypeError
时首先要看哪里了,哈哈。再次感谢!如果你愿意,你可以把它放在正确的答案中,这样我就可以接受&u请注意。