在javascript中读取多个url参数[重复]
Posted
技术标签:
【中文标题】在javascript中读取多个url参数[重复]【英文标题】:reading multiple url parameters in javascript [duplicate] 【发布时间】:2019-01-31 13:37:47 【问题描述】:我想在我的 url 中传递多个参数,如下所示: http://your-url/scriptname?response_code=591&response_description=Unsuccessful&reference_code=354d6728a9c1ef0&transaction_id=1535121422&trans_type=deposit
如何在 javascript 中阅读它们?如何读取多个 url 参数? getParameterByName() 可以有多个参数吗? 谢谢。
【问题讨论】:
那些称为查询字符串参数的参数,您可以自己读取/解析它们或使用一些为您执行此操作的库。location.search
将是包含所有这些的字符串
【参考方案1】:
<script>
let url = new URL('http://your-url/scriptname?response_code=591&response_description=Unsuccessful&reference_code=354d6728a9c1ef0&transaction_id=1535121422&trans_type=deposit');
let params = new URLSearchParams(url.search.slice(1));
let obj = ;
for(let pair of params.entries())
obj[pair[0]] = pair[1] //push keys/values to object
console.log(obj)
</script>
访问here了解更多信息。
【讨论】:
【参考方案2】:var myUrl = ' http://your-url/scriptname?response_code=591&response_description=Unsuccessful&reference_code=354d6728a9c1ef0&transaction_id=1535121422&trans_type=deposit';
var GetParameters = function (url)
var splitParametersFromUrl = url.split('?');
var spliteParameters = splitParametersFromUrl[1].split('&');
var param = function (name, value)
this.Name = name,
this.Value = value
var resualt = new Array();
for (var i = 0; i < spliteParameters.length; i++)
var item = spliteParameters[i].split('=');
var itemParam = new param(item[0], item[1]);
resualt.push(itemParam);
return resualt;
var resualt = GetParameters(myUrl);
console.log(resualt);
结果: 数组(5) 0 : 参数 名称:“response_code”,值:“591” 1 : 参数 名称:“response_description”,值:“不成功” 2 : 参数 名称:“reference_code”,值:“354d6728a9c1ef0” 3 : 参数 名称:“transaction_id”,值:“1535121422” 4 : 参数 名称:“trans_type”,值:“存款”
祝你好运
【讨论】:
【参考方案3】:很简单,通过location.search
获取参数。拆分查询,解码组件;
下面的代码是一个自执行函数,可以根据需要处理当前窗口的url,并返回一个可以调用的作用域函数。
let getParameterByName = function()
let queries = location.search.substring(1).split('&'),
processed = ;
for (let query of queries)
let [name, value] = query.split('=');
processed[decodeURIComponent(name)] = value? decodeURIComponent(value) : '';
return function(name)
if (typeof processed[name] !== 'undefined')
return processed[name];
else
return null;
;
();
用法示例:
var response_code = getParameterByName('response_code'),
response_description = getParameterByName('response_description');
注意如果url中不存在查询,则返回null
。
【讨论】:
以上是关于在javascript中读取多个url参数[重复]的主要内容,如果未能解决你的问题,请参考以下文章
在 JavaScript 中使用 URL 的 GET 参数 [重复]
使用javascript在包含特殊字符的URL中传递参数[重复]