[笔记][JavaScript]取得网址后带的参数(QueryString)

有时候我们会用在网址后面带参数的做法来在网页间传递一些简单的资料(QueryString),例如:index.aspx?id=U001&name=GQSM,而JavaScript目前没有Function可以直接取到后方的资料,所以就得使用一些方式。

//先取得网址字串,假设此页网址为「index.aspx?id=U001&name=GQSM」var url = location.href;//再来用去寻找网址列中是否有资料传递(QueryString)if(url.indexOf('?')!=-1){    //之后去分割字串把分割后的字串放进阵列中    var ary1 = url.split('?');    //此时ary1里的内容为:    //ary1[0] = 'index.aspx',ary2[1] = 'id=U001&name=GQSM'        //下一步把后方传递的每组资料各自分割    var ary2 = ary1[1].split('&');    //此时ary2里的内容为:    //ary2[0] = 'id=U001',ary2[1] = 'name=GQSM'        //最后如果我们要找id的资料就直接取ary[0]下手,name的话就是ary[1]    var ary3 = ary2[0].split('=');    //此时ary3里的内容为:    //ary3[0] = 'id',ary3[1] = 'U001'        //取得id值    var id = ary3[1];    }

以上的方法式为了能看的懂所以一步步做解析,一般在实务上不需要撰写如此条列式的程式,通常会写得更简洁,或是利用for迴圈来取得自己需要的资料,例如以下:

//先取得网址字串,假设此页网址为「index.aspx?id=U001&name=GQSM」var url = location.href;//再来用去寻找网址列中是否有资料传递(QueryString)if(url.indexOf('?')!=-1){    var id = "";    //在此直接将各自的参数资料切割放进ary中    var ary = url.split('?')[1].split('&');    //此时ary的内容为:    //ary[0] = 'id=U001',ary[1] = 'name=GQSM'        //下迴圈去搜寻每个资料参数    for(i=0;i<=ary.length-1;i++)    {        //如果资料名称为id的话那就把他取出来        if(ary[i].split('=')[0] == 'id')            id = ary[i].split('=')[1];    }    }

Function:
1.indexOf()
A.indexOf('B');
会回传在A字串中B第一次出现的位置(第一个位置为0),如果在A字串中没有B那会回传-1。

2.split()
A.split('B');
会把A字串以B做切割,各自分成几个小字串,通常会以阵列去装被切割的字串。

参考文章:
1.http://www.wibibi.com/info.php?tid=82
2.http://help.i2yes.com/?q=node/234


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章