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 的浏览器中加载。