browser.tabs.query({active: true, currentWindow: true}) 可以 return 多个标签吗?

Can browser.tabs.query({active: true, currentWindow: true}) ever return more than one tab?

我的扩展程序需要对当前活动的选项卡执行某些操作。所以我用

browser.tabs.query({active: true, currentWindow: true}).then((tabs) =>
  let tab = tabs[0];
  if (tab) {
    // actual code
  } else {
    log("no active tab")
  }
);

主要是出于好奇:在某些情况下 tabs 会有多个选项卡吗?

TLDR:否

对于 Chrome,Opera 和 Firefox 目前这是不可能的,因此可以安全地假设数组将只包含一个元素。

Opera 有 multi-select 个选项卡,但它使用 属性 highlighted 来指示 multi-select 状态。 active表示"visibly selected in window":选项卡内容在浏览器中可见window。

browser.tabs.query returns 一个数组,不管你传递给它的过滤器是什么。它也是 returns 在 "index" 上过滤时的一个数组,如果你有一个 window 打开,则包含一个结果。