【问题标题】:Can browser.tabs.query({active: true, currentWindow: true}) ever return more than one tab?browser.tabs.query({active: true, currentWindow: true}) 可以返回多个选项卡吗?
【发布时间】:2018-03-24 09:17:38
【问题描述】:

我的扩展程序需要对当前活动的标签做一些事情。所以我用

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

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

【问题讨论】:

  • 这将是浏览器中的一个错误,您可以在crbug.com 上报告。

标签: google-chrome-extension firefox-addon-webextensions


【解决方案1】:

TLDR:否

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

Opera 具有多选选项卡,但它使用属性highlighted 来指示多选状态。 active 表示“在窗口中可见选择”:选项卡的内容在浏览器窗口中可见。

browser.tabs.query 返回一个数组,而不管您传递给它的过滤器。当过滤“索引”时,它还会返回一个数组,如果您打开一个窗口,则包含一个结果。

【讨论】:

  • “多选标签”在 Chrome 中可用,chrome.tabs API 中的术语是highlight。它与active 不同。另一方面,Vivaldi 有标签堆叠和标签拆分,但它是作为 extData 属性实现的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-07
  • 1970-01-01
  • 1970-01-01
  • 2021-09-19
  • 1970-01-01
  • 2019-08-16
  • 2012-08-14
相关资源
最近更新 更多