tabs.discard()

丢弃一个或多个标签页。

某些浏览器会自动“丢弃”未使用的标签页以释放内存。被丢弃的标签页仍然在标签栏中可见。浏览器会记住标签页的状态,并在用户选择该标签页时恢复它。关于何时以及什么情况下标签页会被丢弃的细节因浏览器而异。

你可以通过在 tabs.update 中将标签页的 autoDiscardable 属性设置为 false 来控制浏览器或此 API 是否丢弃标签页。此设置可防止浏览器丢弃该标签页。然后只能通过此 API 丢弃该标签页。

无法丢弃活动标签页或其文档包含会显示提示的 beforeunload 监听器的标签页。

这是一个返回 Promise 的异步函数。

语法

js
let discarding = browser.tabs.discard(
  tabIds          // 整数或整数数组
)

参数

tabIds

integerinteger 数组。要丢弃的标签页的 ID 或 ID 数组。

返回值

一个 Promise,在所有指定的标签页被丢弃后其会被兑现且不带参数。如果发生任何错误(例如,标签页 ID 无效),则该 promise 将被拒绝并带有错误消息。

如果传入的是活动标签页的 ID,它将不会被丢弃,但 promise 仍会被兑现,并且任何其他传入的标签页将被丢弃。

示例

丢弃单个标签页:

js
function onDiscarded() {
  console.log(`已被丢弃`);
}

function onError(error) {
  console.log(`发送错误:${error}`);
}

let discarding = browser.tabs.discard(2);
discarding.then(onDiscarded, onError);

丢弃多个标签页:

js
function onDiscarded() {
  console.log(`已被丢弃`);
}

function onError(error) {
  console.log(`发生错误:${error}`);
}

let discarding = browser.tabs.discard([15, 14, 1]);
discarding.then(onDiscarded, onError);

浏览器兼容性

BCD tables only load in the browser

备注: 此 API 基于 Chromium 的 chrome.tabs API。