tabs.hide()

隐藏一个或多个标签。

隐藏的标签将不再显示在浏览器的标签栏中。隐藏的标签不会自动 丢弃:它们中的代码将继续运行。您可以在隐藏标签时显式地丢弃它们:虽然这并非所有情况都适用,但它将有助于减少浏览器使用的资源。

这是一个异步函数,它返回一个 Promise

并非所有标签都有资格被隐藏

  • 固定标签无法隐藏。
  • 共享屏幕、麦克风或摄像头的标签无法隐藏。
  • 当前活动的标签无法隐藏。
  • 正在关闭过程中的标签无法隐藏。

当扩展第一次隐藏标签时,浏览器会告诉用户标签正在被隐藏,向他们展示如何访问隐藏的标签,并允许他们选择禁用该扩展。

要使用此 API,您必须拥有“tabHide” 权限

语法

js
let hiding = browser.tabs.hide(
  tabIds          // integer or integer array
)

参数

tabIds

整数整数数组。要隐藏的标签或标签的 ID。

如果这些标签中任何一个没有资格被隐藏,它们将不会被隐藏,但调用仍将成功,合格的标签仍将被隐藏。例如,如果您传递 [1, 3],并且 1 代表活动的标签,那么只有 3 会被隐藏。

但是,如果任何标签 ID 无效,调用将失败,并且不会隐藏任何标签。

返回值

一个 Promise,它将完成并包含一个包含已隐藏标签 ID 的数组。如果发生任何错误,promise 将被拒绝,并包含一条错误消息。

示例

隐藏单个标签

js
function onHidden() {
  console.log(`Hidden`);
}

function onError(error) {
  console.log(`Error: ${error}`);
}

browser.tabs.hide(2).then(onHidden, onError);

隐藏多个标签

js
function onHidden() {
  console.log(`Hidden`);
}

function onError(error) {
  console.log(`Error: ${error}`);
}

browser.tabs.hide([15, 14, 1]).then(onHidden, onError);

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。