У меня была такая же проблема, но потом я нашел способ сделать это.Код ниже все еще немного грязный, но работает отлично.
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(){})
}
});
});
То, что вы делаете, это перебираете каждую вкладку и получаете ее идентификатор, затем получаете текущий идентификатор вкладки и проверяете, совпадает ли текущий идентификатор вкладки с идентификатором вкладки из цикла.Если они совпадают, ничего не делайте, а если они не совпадают, удалите вкладку.Надеюсь, это поможет.