在javascript中读取多个url参数

在javascript中读取多个url参数,javascript,html,Javascript,Html,我希望在url中传递多个参数,如下所示: 如何在javascript中读取它们?如何读取多个url参数? getParameterByName可以有多个参数吗? 谢谢。非常简单,您可以通过location.search访问参数。拆分查询,并解码组件 下面的代码是一个自执行函数,它根据需要处理当前窗口url,并返回一个可以调用的作用域函数 let getParameterByName = function() { let queries = location.search.substri

我希望在url中传递多个参数,如下所示:

如何在javascript中读取它们?如何读取多个url参数? getParameterByName可以有多个参数吗?
谢谢。

非常简单,您可以通过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; 
    };
}();
用法示例:

请注意,如果url中不存在查询,它将返回null

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 : 参数{Name:response_code,值:591} 1. : 参数{Name:response_description,Value:Unsuccessful} 2. : 参数{Name:reference_code,值:354d6728a9c1ef0} 3. : 参数{Name:transaction_id,值:1535121422} 4. : 参数{Name:trans_type,Value:deposit}

祝你好运

<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>

有关更多信息,请访问。

这些参数称为查询字符串参数,您可以自己读取/解析它们,也可以使用一些库来为您执行此操作。location.search将是包含所有位置的字符串
<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>