window.open弹出悬浮框,并传递json参数

本文介绍如何在JavaScript中通过window.open方法打开新窗口并传递JSON格式的数据,以及如何在新窗口中解析这些数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.test1.jsp页面

js:

  var replyId = "aaa";

  var questionId = "bbb";

  var jsonObj = '{replyId:'+replyId+',questionId:'+questionId+'}';

  var iWidth = 600;
  var iHeight = 500;  
  var iTop = (window.screen.availHeight - 25 - iHeight) / 2;  
  var iLeft = (window.screen.availWidth - 15 - iWidth) / 2;  
  window.open("replyDialog.html?obj="+escape(obj), "弹出窗口", "width=" + iWidth + ", height="
    + iHeight + ",top=" + iTop + ",left=" + iLeft +
    ",toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no,alwaysRaised=yes,depended=yes");

2.replyDialog.html页面接收json参数

  var json = location.search;
  json = unescape(json).match(/\{.+?\}/);
  json = eval("("+json+")");
  var replyId = json.replyId;//得到值为aaa
  var questionId = json.questionId;//得到值为bbb

为什么要 eval这里要添加 “("("+json+")");//”呢?

是由于json格式是包含在{}花括号里的,如果不使用eval()转换一下,在js中json变量得到的将会是一个语句块

加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式转化为对象,而不是作为语句块来执行



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值