//方法一
// 若地址栏URL为:test.html?id=10&url=http://www.baidu.com
// 调用GetQueryString方法:alert(GetQueryString("url"));则会弹出一个对话框:内容就是 http://www.baidu.com
// 如果alert(GetQueryString("id")); 就会弹出 10
// 如果没有传参数,比如地址是 test.html 后面没有参数,防止输出报错就加个判断
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;
}
// console.log(GetQueryString("index2"));
var myurl=GetQueryString("url");
console.log(myurl);
// alert(myurl);
if(myurl !=null && myurl.toString().length>1)
{
console.log(GetQueryString("id"));
// alert(GetQueryString("id"));
}
第二种办法
function UrlAdr()
{
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 UrlAdr(); //实例化
alert(request.id);
第三种办法
直接截取后面的参数
// 获取 a 的 href 值截取想要的部分
// 比如 a 的链接是 https://www.baidu.com?canshu 想得到 ? 后面的值 t的值就是canshu
var urlEle=$(".test").attr("href")
var s=urlEle.indexOf("?");
var t=urlEle.substring(s+1);// t就是?后面的东西了
console.log(t)
第四种办法
//获取参数方法
function getHref(){
let url = location.search
let theRequest = {}
if (url.indexOf('?') != -1) {
let str = url.substr(1)
if (str.indexOf('&') != -1) {
let strs = str.split('&')
for (let i = 0; i < strs.length; i++) {
let key = decodeURIComponent(strs[i].split('=')[0])
let value = decodeURIComponent(strs[i].split('=')[1])
theRequest[key] = value
}
} else {
let key = decodeURIComponent(str.split('=')[0])
let value = decodeURIComponent(str.split('=')[1])
theRequest[key] = value
}
}
return theRequest
}
//用法 var 自己变量名字 = getHref().要获取的参数名字 或者直接获取全部参数 getHref()
var myid=getHref().id
//或者 支持获取传入的url参数,如果不传入url默认获取当前链接参数,用法同上
function getURLParameters(url) {
const queryString = url ? url.split('?')[1] : window.location.search.slice(1);
const params = {};
if (queryString) {
const keyValues = queryString.split('&');
keyValues.forEach(keyValue => {
const [key, value] = keyValue.split('=');
params[key] = decodeURIComponent(value);
});
}
return params;
}