windows.remove()
关闭给定 ID 的窗口及其所包含的所有标签页。
这是一个返回 Promise
的异步函数。
语法
js
let removing = browser.windows.remove(
windowId // 整型
)
参数
windowId
-
integer
。要关闭的窗口的 ID。
返回值
一个 Promise
,当窗口已关闭时将不带参数地兑现。如果发生任何错误,则该 promise 将以错误消息拒绝。
浏览器兼容性
BCD tables only load in the browser
示例
当用户点击浏览器操作的图标时,关闭点击图标所在的窗口:
js
function onRemoved() {
console.log(`窗口已关闭`);
}
function onError(error) {
console.error(`发生错误:`, error);
}
browser.browserAction.onClicked.addListener((tab) => {
let removing = browser.windows.remove(tab.windowId);
removing.then(onRemoved, onError);
});
当用户点击页面上的按钮时,关闭当前窗口(例如弹出窗口):
js
// 在窗口中的页面加载的脚本中
document.querySelector("#close").addEventListener(async ({ button }) => {
try {
if (button) return; // 不是鼠标左键单击
const windowId = (await browser.windows.getCurrent()).id;
await browser.windows.remove(windowId);
// 因为窗口已被关闭,代码将不会执行到此处
} catch (error) {
console.error("无法关闭:", error);
}
});
在 Firefox 中,你可以通过 .allowScriptsToClose
窗口创建属性和 window.close()
来实现相同的效果。
示例扩展
备注:
此 API 基于 Chromium 的 chrome.windows
API。该文档衍生自 Chromium 代码中的 windows.json
。