tabs.hide()

隐藏一个或多个标签页。

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

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

并非所有标签页都符合隐藏条件

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

当扩展程序第一次隐藏一个标签页时,浏览器会告知用户该标签页正在被隐藏,展示如何访问隐藏的标签页,并提供禁用该扩展程序的选项。

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

语法

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

参数

tabIds

integerintegerarray。要隐藏的标签页的 ID。

如果其中任何标签页不符合隐藏条件,它们将不会被隐藏,但调用仍将成功,符合条件的标签页仍然会被隐藏。例如,如果您传递 [1, 3],而 1 是活动标签页的 ID,那么只有 3 会被隐藏。

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

返回值

一个 Promise,它将以一个包含被隐藏标签页 ID 的数组来 fulfilled。如果发生任何错误,promise 将会用错误消息被 rejected。

示例

隐藏单个标签页

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);

浏览器兼容性