1.首先需要获取当前页面的URL,这个可以从 window.location.search 获取:
//获取当前页面的完整地址var currentUrl = window.location.href;//获取当前页面URL的从问号 (?) 开始的 URL(查询部分)var params = window.location.search;
Location 对象属性
上表来自/jsref/dom_obj_location.asp
2.获取具体的参数
以Google "JS获取当前页面url参数" 的URL为例:
/search?ei=XEDqW-fuAoXN0PEPytmR-As&q=JS%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E9%A1%B5%E9%9D%A2url%E5%8F%82%E6%95%B0&oq=JS%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E9%A1%B5%E9%9D%A2url%E5%8F%82%E6%95%B0&gs_l=psy-ab.3...3192.3424.0.3909.3.3.0.0.0.0.280.280.2-1.1.0....0...1c.1j4.64.psy-ab..2.0.0....0.Bf-4Zsck6OI
以下内容转载自:/tjcyjd/article/details/44275531
但unescape函数替换为了decodeURLcomponent
有两种方法:
(1)split 分割放进对象:
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]]=decodeURLcomponent(strs[i].split("=")[1]); } } return theRequest; } var req = GetRequest(); var query = req['q'];alert(query);
(2)正则表达式匹配:
function getQueryString(name) {var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");var r = window.location.search.substr(1).match(reg);if (r != null) return decodeURLcomponent(r[2]); return null;}var query= getQueryString("q");alert(query);
注:
1.window.location.search中包含中文参数时,使用unescape进行解码会出现乱码错误,应该使用 decodeURLComponent函数;
关于escape encodeURI encodeURIComponent 的区别,请参考:
/qiantuwuliang/archive//07/19/1526687.html
主要区别是:
1..escapte unescapte 已经被废弃;
2.encodeURI/decodeURI 用于编码/解码整个URL,encodeURIComponent/decodeURIComponent 用于编码/解码URL的部分参数;
如果觉得《JS获取当前页面的URL参数》对你有帮助,请点赞、收藏,并留下你的观点哦!