windows.remove()

关闭指定 ID 的窗口及其所有标签页。

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

语法

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

参数

windowId

integer。要关闭的窗口的 ID。

返回值

一个 Promise,当窗口关闭时,它将以无参数的形式 fulfilled。如果发生任何错误,promise 将被带有错误消息的 rejected。

示例

当用户点击浏览器操作的图标时,关闭图标被点击的窗口。

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