Skip to content

Latest commit

 

History

History
108 lines (81 loc) · 3.87 KB

File metadata and controls

108 lines (81 loc) · 3.87 KB
title slug l10n
tabs.discard()
Mozilla/Add-ons/WebExtensions/API/tabs/discard
sourceCommit
43e3ff826b7b755b05986c99ada75635c01c187c

{{AddonSidebar}}

丢弃一个或多个标签页。

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

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

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

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

语法

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

参数

  • tabIds
    • : integerinteger 数组。要丢弃的标签页的 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。