URL获取参数值
Posted hupan508
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了URL获取参数值相关的知识,希望对你有一定的参考价值。
方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!)
function GetQueryString(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(GetQueryString("参数名1")); alert(GetQueryString("参数名2")); alert(GetQueryString("参数名3"));
下面举一个例子:
若地址栏URL为:abc.html?id=123&url=http://www.maidq.com
那么,但你用上面的方法去调用:alert(GetQueryString("url"));
则会弹出一个对话框:内容就是 http://www.maidq.com
如果用:alert(GetQueryString("id"));那么弹出的内容就是 123 啦;
当然如果你没有传参数的话,比如你的地址是 abc.html 后面没有参数,那强行输出调用结果有的时候会报错:
所以我们要加一个判断 ,判断我们请求的参数是否为空,首先把值赋给一个变量:
var myurl=GetQueryString("url"); if(myurl !=null && myurl.toString().length>1) { alert(GetQueryString("url")); }
这样就不会报错了!
方法二
function getUrlVars() { var vars = {}; var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&#]*)/gi, function(m,key,value) { vars[key] = value; } ); return vars; }
调用的时候就像这样:
var fType = getUrlVars()["type"];
方法三
如:
http://www.abc123.com/index.html?page=12&id=525
/** * 获取url传过来的参数 * @return array */ function getRequest() { var url = location.search; //获取url中"?"符后的字串 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]] = unescape(strs[i].split("=")[1]); } }else{ theRequest = null; } return theRequest; }
调用
var GET = getRequest(); if(GET){ var page = GET.page, id = GET.id; } console.log("获取到的数据:page=" + page + "-------id=" + id);
以上是关于URL获取参数值的主要内容,如果未能解决你的问题,请参考以下文章