如何在存储更改时关闭某个网页上的所有标签?

时间:2014-04-26 04:49:01

标签: javascript google-chrome google-chrome-extension

我想通过使用背景页面并使用.tabs api来实现这一目标。我试过了

chrome.storage.onChanged.addListener(function() {
    chrome.tabs.query({
        currentWindow: true,
        url: "*://www.facebook.com/*"
    }, function(tabs) {
        chrome.tabs.remove(tabs)
    })
})

没有成功。我得到的错误是:Error Message

我做错了吗?事实上,我确实打开了一个facebook标签,所以我知道这不是问题所在。这里有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

错误在您的回拨函数中,在您对chrome.tabs.remove的调用中。此函数期望其第一个参数是“整数或整数tabIds数组”,但您传递的是“Tab数组”。您需要从Tabs数组中提取tabIds。例如,您可以用以下方法替换回调函数:

function(tabs) {
    var tabIds = [];
    for( var i = 0; i < tabs.length; i++)
       tabIds[i] = tabs[i].id;
    chrome.tabs.remove(tabIds);
})