windows.remove()

关闭一个窗口及其内部的所有标签,前提是知道窗口的 ID。

这是一个异步函数,它返回一个 Promise

语法

js
let removing = browser.windows.remove(
  windowId        // integer
)

参数

windowId

integer。要关闭的窗口的 ID。

返回值

一个 Promise,它将在窗口关闭时以不带任何参数的方式完成。如果发生任何错误,则承诺将以错误消息拒绝。

浏览器兼容性

BCD 表只在浏览器中加载

示例

当用户点击浏览器操作图标时,关闭包含该图标的窗口

js
function onRemoved() {
  console.log(`Removed window`);
}

function onError(error) {
  console.error(`Error:`, error);
}

browser.browserAction.onClicked.addListener((tab) => {
  let removing = browser.windows.remove(tab.windowId);
  removing.then(onRemoved, onError);
});

当用户点击页面上的按钮时,关闭当前窗口(例如弹出窗口)

js
// in a script loaded by the page in the window
document.querySelector("#close").addEventListener(async ({ button }) => {
  try {
    if (button) return; // not a left click
    const windowId = (await browser.windows.getCurrent()).id;
    await browser.windows.remove(windowId);
    // this point will never be reached, since the window is gone
  } catch (error) {
    console.error("Closing failed:", error);
  }
});

在 Firefox 中,可以使用 .allowScriptsToClose 窗口创建属性和 window.close() 实现相同的效果。

示例扩展

注意:此 API 基于 Chromium 的 chrome.windows API。本文档源自 Chromium 代码中的 windows.json