title | slug | l10n | ||
---|---|---|---|---|
tabs.discard() |
Mozilla/Add-ons/WebExtensions/API/tabs/discard |
|
{{AddonSidebar}}
丢弃一个或多个标签页。
某些浏览器会自动“丢弃”未使用的标签页以释放内存。被丢弃的标签页仍然在标签栏中可见。浏览器会记住标签页的状态,并在用户选择该标签页时恢复它。关于何时以及什么情况下标签页会被丢弃的细节因浏览器而异。
你可以通过在 {{WebExtAPIRef("tabs.update")}} 中将标签页的 autoDiscardable
属性设置为 false
来控制浏览器或此 API 是否丢弃标签页。此设置可防止浏览器丢弃该标签页。然后只能通过此 API 丢弃该标签页。
无法丢弃活动标签页或其文档包含会显示提示的 beforeunload
监听器的标签页。
这是一个返回 Promise
的异步函数。
let discarding = browser.tabs.discard(
tabIds // 整数或整数数组
)
tabIds
- :
integer
或integer
数组。要丢弃的标签页的 ID 或 ID 数组。
- :
一个 Promise
,在所有指定的标签页被丢弃后其会被兑现且不带参数。如果发生任何错误(例如,标签页 ID 无效),则该 promise 将被拒绝并带有错误消息。
如果传入的是活动标签页的 ID,它将不会被丢弃,但 promise 仍会被兑现,并且任何其他传入的标签页将被丢弃。
丢弃单个标签页:
function onDiscarded() {
console.log(`已被丢弃`);
}
function onError(error) {
console.log(`发送错误:${error}`);
}
let discarding = browser.tabs.discard(2);
discarding.then(onDiscarded, onError);
丢弃多个标签页:
function onDiscarded() {
console.log(`已被丢弃`);
}
function onError(error) {
console.log(`发生错误:${error}`);
}
let discarding = browser.tabs.discard([15, 14, 1]);
discarding.then(onDiscarded, onError);
{{WebExtExamples}}
{{Compat}}
Note
此 API 基于 Chromium 的 chrome.tabs
API。