刷新所有窗口中的所有选项卡

Und*_*ame 1 javascript google-chrome google-chrome-extension

作为 Chrome 扩展程序的新手,我希望有一种相当简单的方法可以让它产生变化。

chrome.tabs.getAllInWindow(null, function(tabs) {
    for(var i = 0; i < tabs.length; i++) {
        chrome.tabs.update(tabs[i].id, {url: tabs[i].url});
    }
}); 
Run Code Online (Sandbox Code Playgroud)

上面的代码一旦在扩展程序中打开,就会刷新当前窗口的所有选项卡。是否有类似的方法可以让我重新加载所有窗口中的所有选项卡,而不仅仅是当前窗口中的选项卡?

Mak*_*yen 5

你的问题不是很清楚,所以我可能没有正确解释它。我理解这意味着您希望将“刷新”应用于所有窗口中的每个现有选项卡。

为此,您只需使用chrome.tabs.query()获取所有现有选项卡,而无需将其限制为任何特定窗口。我假设您只想“刷新”普通窗口中的那些选项卡。这将导致不会“刷新”其他扩展已经打开的面板等。如果你想做所有事情,那么只需删除`windowType:'normal'

chrome.tabs.query({windowType:'normal'}, function(tabs) {
    for(var i = 0; i < tabs.length; i++) {
        chrome.tabs.update(tabs[i].id, {url: tabs[i].url});
    }
}); 
Run Code Online (Sandbox Code Playgroud)

如果出于某种原因,您想逐个窗口而不是在一个查询中执行所有操作,则可以从以下位置获取窗口列表 chrome.windows.getAll()