考虑:
http://example.com/page.html?returnurl=%2Fadmin
对于page.html内的js,它如何检索GET参数?
对于上面的简单例子,func('returnurl')应该是/admin。
但它也应该适用于复杂的查询字符串…
考虑:
http://example.com/page.html?returnurl=%2Fadmin
对于page.html内的js,它如何检索GET参数?
对于上面的简单例子,func('returnurl')应该是/admin。
但它也应该适用于复杂的查询字符串…
当前回答
我这样做(检索一个特定的get-parameter,这里'parameterName'):
var parameterValue = decodeURIComponent(window.location.search.match(/(\?|&)parameterName\=([^&]*)/)[2]);
其他回答
如果您不介意使用库而不是自己的实现,请查看https://github.com/jgallen23/querystring。
获取JSON对象的参数:
console.log(getUrlParameters())
function getUrlParameters() {
var out = {};
var str = window.location.search.replace("?", "");
var subs = str.split(`&`).map((si)=>{var keyVal = si.split(`=`); out[keyVal[0]]=keyVal[1];});
return out
}
一种更花哨的方法::)
var options = window.location.search.slice(1)
.split('&')
.reduce(function _reduce (/*Object*/ a, /*String*/ b) {
b = b.split('=');
a[b[0]] = decodeURIComponent(b[1]);
return a;
}, {});
我这样做(检索一个特定的get-parameter,这里'parameterName'):
var parameterValue = decodeURIComponent(window.location.search.match(/(\?|&)parameterName\=([^&]*)/)[2]);
var getQueryParam = function(param) {
var found;
window.location.search.substr(1).split("&").forEach(function(item) {
if (param == item.split("=")[0]) {
found = item.split("=")[1];
}
});
return found;
};