window.open传参问题

问题描述

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

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

阅读 11.7k
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(); 进行反序列化为对象,就可以了


撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题