url正常传递参数格式为:
<script>
//跳转至页面http://www.baidu.com,传递参数名字和年龄(如下代码实现)
window.location = 'http://www.baidu.com?name='+牵One+'&age='+24;
</script>
但是有时我们需要传递的不只是一个键值对或者键值对多了会导致url过长,这个时候就可以将键值对存入一个对象中传递:
<script>
//声明一个对象存入需要传递的数据
var obj = {
name:'牵One',
age:24,
hobby:'basketball',
sex:'man',
weight:'57kg',
height:'170cm'
};
//通过url传递(需要将对象转换为JSON字符串)
window.location = 'http://www.xxx.com?objData='+JSON.stringify(obj);
</script>
这时对象就传递过去了,然后要讲的是对传过来对象的接收(获取):
<script>
//获取url带过来的参数,如下代码是获取url问号后面的字符串
var query = window.location.search;
//因为参数中包括有中文,会变成乱码,需转码
query = decodeURI(query);
//获取参数objData
var objData = query.spilt('=')[1];
//将获取的objData打印出来你会发现,冒号全变成了%3A,这时用正则替换回来
objData = objData.replace(/%3A/g,':');
//再将JSON字符串转为js对象即可
objData = JSON.parse(objData);
//此时的objData就是我们传过来的,打印出来如下
objData = {
name:'牵One',
age:24,
hobby:'basketball',
sex:'man',
weight:'57kg',
height:'170cm'
};
</script>
好了,这就是通过url传对象的解答,希望可以对你们有所帮助。