摘要:在 web 开发中,不同的页面间经常会需要参数的传递,比如新闻列表和新闻详情页面,怎么绑定不同的 id 给它们,这时候比较简单的方案就是通过地址栏传输对应的参数 id,具体的实现我封装了两个工具函数。
方案一
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| function UrlSearch(){
var name,value; var str=location.href; console.log('str地址是:'+str);
var num=str.indexOf("?"); console.log('num =' + num);
str=str.substr(num+1); console.log('str =' + str);
var arr=str.split("&"); console.log('arr =' + arr);
for(var i=0;i < arr.length;i++){ num=arr[i].indexOf("="); console.log('num =' + num);
if(num>0){ name=arr[i].substring(0,num); console.log('name =' + name);
value=arr[i].substr(num+1); console.log('value =' + value);
value=decodeURI(value); console.log('value =' + value);
this[name]=value; } } };
var requestUrl = new UrlSearch();
|
方案二
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| function UrlSearch() {
var url = window.location.search; var theRequest = new Object(); if (url.indexOf("?") != -1) { var str = url.substr(1); strs = str.split("&"); for(var i = 0; i < strs.length; i ++) { theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]); } } return theRequest; } UrlSearch();
|
总结: 事实上,很长一段时间我一直用的第一个函数方法,但是它写的并不好,太冗余了,第二个函数明显更简洁了,算是改进版,以后就用这个。