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代码的时候强制将括号内的表达式转化为对象,而不是作为语句块来执行