tabs.discard()
丢弃一个或多个标签页。
某些浏览器会自动“丢弃”未使用的标签页以释放内存。被丢弃的标签页仍然在标签栏中可见。浏览器会记住标签页的状态,并在用户选择该标签页时恢复它。关于何时以及什么情况下标签页会被丢弃的细节因浏览器而异。
你可以通过在 tabs.update
中将标签页的 autoDiscardable
属性设置为 false
来控制浏览器或此 API 是否丢弃标签页。此设置可防止浏览器丢弃该标签页。然后只能通过此 API 丢弃该标签页。
无法丢弃活动标签页或其文档包含会显示提示的 beforeunload
监听器的标签页。
这是一个返回 Promise
的异步函数。
语法
js
let discarding = browser.tabs.discard(
tabIds // 整数或整数数组
)
参数
tabIds
-
integer
或integer
数组。要丢弃的标签页的 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。