window.open转递对象参数
时间: 2023-11-22 19:36:19 浏览: 159
可以使用 `encodeURIComponent` 方法将对象参数转换为字符串,并将其作为 URL 的查询字符串附加到 `window.open` 的 URL 参数中。然后在弹出窗口中使用 `decodeURIComponent` 方法解码查询字符串,以恢复原始对象。
以下是一个简单的示例代码:
```javascript
// 假设要传递的对象参数为 obj
var obj = { name: 'John', age: 30 };
// 将对象参数编码为字符串
var objStr = encodeURIComponent(JSON.stringify(obj));
// 将编码后的字符串附加到 URL 参数中并打开新窗口
window.open('https://example.com/page.html?obj=' + objStr);
// 在弹出窗口中解码对象参数
var objStr = decodeURIComponent(window.location.search.match(/(\?|&)obj=(.*?)(\&|$)/)[2]);
var obj = JSON.parse(objStr);
console.log(obj); // { name: 'John', age: 30 }
```
请注意,查询字符串中的特殊字符(例如 `+` 和 `=`)必须进行编码,以避免破坏查询字符串的结构。因此,我们使用了 `encodeURIComponent` 方法。
阅读全文