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
。