读书人

关于js/jquery url传参的有关问题

发布时间: 2013-12-09 09:45:50 作者: rapoo

关于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);

如上所示,传参之前可以取到值,传参之后就取不到了,难道不能这样传参的吗? js jquery html
[解决办法]
你这样写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);
}
}




用法:Url类:获取url中参数的值,使用var u = new Url(location.search); var value = url.getvalue(para);即可得到值,

读书人网 >JavaScript

热点推荐