关于js/jquery url传参的问题
利用url发送数据到test.html,alert弹出"名字:" 代码如下:
function test(){
ta_field=[{"thead":"姓名:"},{"thead":"性别:"}];
alert(ta_field[0].thead);
window.open("./test.html?staff_detil="+ta_field)
}
接收端alert弹出"undefined"找不到。 代码如下:
<script type="text/javascript">
function getUrlParam(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
var r = window.location.search.substr(1).match(reg); //匹配目标参数
if (r!=null) return unescape(r[2]); return null; //返回参数值
}
alert(getUrlParam('staff_detil').thead);
如上所示,传参之前可以取到值,传参之后就取不到了,难道不能这样传参的吗?
------解决方案--------------------你这样写url是
./test.html?staff_detil=object,object
你觉得能取到?
可以试试这样写:
ta_field='[{"thead":"姓名:"},{"thead":"性别:"}]';
不过不推荐在url中带json格式字符串
而且有中文的话需要进行url编码
------解决方案--------------------url 传参,只能传递字符串
------解决方案--------------------function Url(urlstr)
{
this.paraMap = new Map();
if (urlstr.indexOf('?') > -1)
{
urlstr = urlstr.substr(1);
}
if (urlstr.indexOf('&') > -1)
{
var pvarr = urlstr.split('&');
for (var i = 0; i < pvarr.length; i++)
{
var pv = pvarr[i].split('=');
this.paraMap.put(pv[0], pv[1]);
}
}
else
{
var pv = urlstr.split('=');
this.paraMap.put(pv[0], pv[1]);
}
}
Url.prototype =
{
getvalue: function(para)
{
return this.paraMap.get(para);
}
}