获取页面的url及参数
(一)页面获取对应参数
通过正则匹配获取:
function getUrlParam (partName) { var reg = new RegExp('(^|&)' + partName + '=([^&]*)(&|$)', 'i'); var r = window.location.search.substr(1).match(reg); if (r != null) { return unescape(r[2]); } return null; } //https://cdn.demo.com/index.html#/?gameid=1024&posid=996&autoopenpage=true getUrlParam("gameid"); // 1024 getUrlParam("posid"); // 996 getUrlParam("autoopenpage"); // true getUrlParam("nothing"); // ''
通过location上的search方法和URLSearchParams,支持所有模式
function getUrlParam(name) { let qs = arguments[1] || location.search.length > 0 ? location.search.substring(1) : '', args = {}; let searchParams = new URLSearchParams(qs); return searchParams.get(name) ? searchParams.get(name) : ''; }; //https://cdn.demo.com/index.html?gameid=1024&posid=996&autoopenpage=true getUrlParam("gameid"); // 1024 getUrlParam("posid"); // 996 getUrlParam("autoopenpage"); // true getUrlParam("nothing"); // ''
通过location上的search方法,支持所有模式
function getUrlParam(name, url) { let qs = arguments[1] || loaction.search.length > 0 ? location.search.substring(1) : '', args = {}; for(let item of qs.split("&").map(val => val.split("="))) { return name == item[0] ? item[1] : ''; }; }; //https://cdn.demo.com/index.html?gameid=1024&posid=996&autoopenpage=true getUrlParam("gameid"); // 1024 getUrlParam("posid"); // 996 getUrlParam("autoopenpage"); // true getUrlParam("nothing"); // ''
(二)传递参数时,中文乱码解决
传参编码形式:
window.location.href = 'index.html?contentA='+encodeURI(中文)
window.location.href = 'index.html?contentA='+encodeURI(encodeURI(中文))
一般情况进行1次编码,如果不行则进行2次编码
接收页面解码形式:
decodeURI(window.location.href)
参考地址: 获取页面的url及参数