在使用 JavaScript 的 HTML 文档中,`window.open()` 方法可用于在当前浏览器窗口之外打开新窗口或选项卡。它可以接受多个选项作为参数,包括传递到新窗口的附加数据。

通过 Windows.open 传递参数通过 Windows.open 传递参数


语法

```javascript window.open(url, target, features, replace) ```

其中:

`url`:要打开的页面的 URL。 `target`:指定新窗口或选项卡的名称。 `features`:以逗号分隔的窗口或选项卡特性列表,例如 `width=600,height=400`。 `replace`:布尔值,指示是否替换当前历史记录条目。默认为 `false`。

传递参数

为了向新窗口或选项卡传递参数,可以在 `window.open()` 方法中使用 `target` 参数。`target` 可以设置为一个唯一字符串,用于标识新窗口或选项卡,并可以通过 JavaScript 访问。

要传递参数,请将它们存储在对象中,然后将该对象序列化为 JSON 字符串。JSON 字符串可以存储在 `target` 参数中。

以下示例展示如何传递一个包含姓名和姓氏的对象:

```javascript const person = { name: "John", lastName: "Doe" }; const json = JSON.stringify(person); window.open("example.html", "new_window", `name=${json}`); ```

访问参数

在目标窗口或选项卡中,您可以在 `window.name` 属性中访问传递的参数。`window.name` 是一个字符串,包含 JSON 字符串化的对象。

要解析对象,请将 JSON 字符串反序列化:

```javascript const json = window.name; const person = JSON.parse(json); console.log(person.name); // John console.log(person.lastName); // Doe ```

用例

通过 `window.open()` 传递参数在以下情况下非常有用:

在新窗口或选项卡中展示附加信息,例如产品详细页面。 使用会话标识符在不同的窗口或选项卡之间共享数据。 控制新窗口或选项卡的行为,例如大小、位置或功能。