我有一个带有一些GET参数的URL,如下所示:
www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5
我需要得到c的全部值。我试图读取URL,但只得到m2。如何使用JavaScript执行此操作?
我有一个带有一些GET参数的URL,如下所示:
www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5
我需要得到c的全部值。我试图读取URL,但只得到m2。如何使用JavaScript执行此操作?
当前回答
window.location.href.split("?")
则忽略第一个索引
Array.prototype.slice.call(window.location.href.split("?"), 1)
返回url参数数组
var paramArray = Array.prototype.slice.call(window.location.href.split(/[?=]+/), 1);
var paramObject = paramArray.reduce(function(x, y, i, a){ (i%2==0) ? (x[y] = a[i+1]) : void 0; return x; }, {});
paramObject包含映射为js对象的所有参数
其他回答
获取单个参数值:
function getQueryParameter(query, parameter) {
return (window.location.href.split(parameter + '=')[1].split('&')[0]);}
我一次又一次遇到同样的问题。现在这里的许多用户现在我以我的HAX工作而闻名,
所以我用以下方法来解决:
PHP:
echo "<p style="display:none" id=\"hidden-GET\">".$_GET['id']."</p>";
JS:
document.getElementById("hidden-GET").innerHTML;
简单的HAX但有效。
您可以运行此函数
function getUrlVars()
{
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
var source = getUrlVars()["lm_supplier"];
var el = source.toString();
var result= decodeURI(el);
console.log(result)
该函数从url获取所需内容,var source=getUrlVars()[“从url中输入您想要的内容”];
我使用parseUri库。它允许您完全按照您的要求进行操作:
var uri = 'www.test.com/t.html&a=1&b=3&c=m2-m3-m4-m5';
var c = uri.queryKey['c'];
// c = 'm2-m3-m4-m5'
window.location.search.slice(1).split('&').reduce((res, val) => ({...res, [val.split('=')[0]]: val.split('=')[1]}), {})