как закрыть все вкладки кроме текущей с расширением Google Chrome - PullRequest
0 голосов
/ 23 октября 2018

Я хочу сделать расширение для Google Chrome, чтобы закрыть все вкладки, кроме текущей.Я нашел примеры, чтобы закрыть все вкладки, например:

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

Но я не знаю, как добавить условие для текущей вкладки, чтобы текущая вкладка оставалась открытой.Не могли бы вы привести пример кода, который закрывает все вкладки, кроме текущей?

Спасибо.

1 Ответ

0 голосов
/ 03 июня 2019

У меня была такая же проблема, но потом я нашел способ сделать это.Код ниже все еще немного грязный, но работает отлично.

 chrome.tabs.query({active:true,windowType:"normal", currentWindow: true},function(d){document.getElementById("Current-tab-id").innerHTML = d[0].id;})

chrome.tabs.query({currentWindow: true}, function(tabs) {
    tabs.forEach(function(tab) {
           
console.log(tab.id);
var CurrentTabId = document.getElementById('Current-tab-id').innerHTML;
console.log(CurrentTabId);
if(CurrentTabId == tab.id) {

} else {
  chrome.tabs.remove(tab.id, function callback(){})
}
    });
});
То, что вы делаете, это перебираете каждую вкладку и получаете ее идентификатор, затем получаете текущий идентификатор вкладки и проверяете, совпадает ли текущий идентификатор вкладки с идентификатором вкладки из цикла.Если они совпадают, ничего не делайте, а если они не совпадают, удалите вкладку.Надеюсь, это поможет.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...