Window: close() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

Window.close() 方法用于关闭当前窗口,或调用它的那个窗口。

如果窗口是由 Web 内容创建的,那么它们就是可由脚本关闭的。这通常包括:

  • 使用 Window.open() 打开的窗口
  • 通过 Web 内容打开的窗口,例如链接 (<a target="_blank">) 或表单 (<form target="_blank">),在没有用户交互操作的情况下打开的。

通过浏览器 UI 操作打开的窗口——例如右键点击 → 在新标签页中打开、Ctrl+点击、Shift+点击或中键点击——通常不可由脚本关闭。它们可能只有在没有导航过(历史记录长度仍为 1)的情况下才能关闭。否则,调用 close() 通常会显示一个控制台警告:Scripts may not close windows that were not opened by script.(脚本不能关闭非由脚本打开的窗口。)

另外请注意,当调用 HTMLIFrameElement.contentWindow 返回的 Window 对象时,close() 方法无效。

语法

js
close()

参数

无。

返回值

无(undefined)。

示例

关闭使用 window.open() 打开的窗口

本示例演示了一个打开窗口的方法,以及一个关闭窗口的方法;这说明了如何使用 Window.close() 关闭通过调用 window.open() 打开的窗口。

js
// Global variable to store a reference to the opened window
let openedWindow;

function openWindow() {
  openedWindow = window.open("more-info.htm");
}

function closeOpenedWindow() {
  openedWindow.close();
}

规范

规范
HTML
# dom-window-close-dev

浏览器兼容性