window.open传参问题

问题描述

1:用window.open打开个窗口,如何把对象参数传过去呢
2:传过去了如何获取值呢??

传值格式:
{"ORGIDS":"","PRODUCTIDS":"P0001,P0002,P0004","MINFEE":"","MAXFEE":"","PRICETYPE":"0","PAGESIZE":20,"PAGEINDEX":1}

阅读 11.9k
3 个回答

拼接在url上

window.open返回的是打开的window的引用。
所以事先先在要打开的窗口中注册全局函数window.setData = Function,打开后直接调用被打开的window的全局函数setData即可。

const ref = window.open(uri);
if (ref && ref.setData) ref.setData(data, callback);

刚刚下班,苦逼

方式很多,但是最好的方式是通过 url的 query进行传值;示例代码如下:

let a = {
   key:'value'
}
// 对参数进行序列化
let astr = JSOS.stringfy(a);

let url = 'http://www.baidu.com?val='+astr;

window.open(url);

// 打开的页面获取值
let query = window.location.query;

// 然后解析参数,最后使用 JOSN.parse(); 进行反序列化为对象,就可以了


推荐问题