Window.name

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

获取/设置窗口的名称。

语法

string = window.name;
window.name = string;

示例

js
window.name = "lab_view";

备注

窗口的名字主要用于为超链接和表单设置目标(targets)。窗口不需要有名称。

在某些框架里(如,SessionVars 和 Dojo's dojox.io.windowName ,该属性也被用于作为 JSONP 的一个更安全的备选,来提供跨域通信(cross-domain messaging)。现代 web 应用应使用 postMessage API 进行敏感的跨域通信。

window.name 会调用 toString 将赋给它的值转换成对应的字符串表示。

(译注:此处似有不妥,私以为调用的应是 ToString 抽象方法。事实上,如果将一个 Symbol 类型的值赋给 window.name,会报 TypeError,而非调用 Symbol.toString() 转换成字符串后进行赋值。例如:

js
window.name = Symbol.for("foo"); // TypeError
window.name = Symbol.for("foo").toString(); // "Symbol(foo)"

具体可参见 EMCA 语言规范中 Type Conversion 一节。)

规范

Specification
HTML
# dom-name-dev

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
name

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
See implementation notes.