方法一:采用正则表达式获取地址栏参数:
例如:ssologin.html?code=2
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"));
当然如果你没有传参数的话,比如你的地址是 abc.html 后面没有参数,那强行输出调用结果有的时候会报错:
所以我们要加一个判断 ,判断我们请求的参数是否为空,首先把值赋给一个变量,这样就不会报错了!:
var myurl=GetQueryString("url");
if(myurl !=null && myurl.toString().length>1){
alert(GetQueryString("url"));
}
方法二:
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]);
} }
return theRequest;
}
// 调用方法
var Request = new Object();
Request = GetRequest();
var 参数1,参数2,参数3,参数N;
参数1 = Request['参数1'];
方法三:传统方法
function UrlSearch() {
var name,value;
var str=location.href; //取得整个地址栏
var num=str.indexOf("?") str=str.substr(num+1); //取得所有参数
stringvar.substr(start [, length ] var arr=str.split("&"); //各个参数放到数组里
for(var i=0;i < arr.length;i++){
num=arr[i].indexOf("=");
if(num>0){
name=arr[i].substring(0,num);
value=arr[i].substr(num+1);
this[name]=value;
} } }
// 调用方法
var Request=new UrlSearch();
//实例化 alert(Request.id);