如何在JavaScript中获取URL参数?

时间:2017-12-12 12:46:15

标签: javascript url-parameters

我正在使用Vue,但是我没有使用vue-router

如何获取URI参数?

我找到了一种使用root el属性获取URI的方法。

screenshot

但是有没有任何正确的方法来获取参数,因为我想发送它们 后端并从服务器获取响应并显示它。

4 个答案:

答案 0 :(得分:2)

由于您未使用vue-router,我认为您无法访问您的参数。因此,您唯一的机会是使用URL api:

const URL = new URL(window.location.href); 
const getParam = URL.searchParams.get('foo'); 

这将为您提供?foo=bar

中foo的值

或者,您可以这样做。

new Vue({
 el: '#app',

 data () {
   return {
     params: window.location.href.substr(window.location.href.indexOf('?'))
   }
 },

 methods: {
   getParam (p) {
     let param = new URLSearchParams(this.params);
     if(param.has(p)){
       return param.get(p)
     }else{
       false
     }
   }
 },
})

现在,只需使用getParam('foo')

获取参数

答案 1 :(得分:2)

您可以使用window.location.search获取URL参数:

const queryString = window.location.search;
console.log(queryString);
// ?product=troussers&color=black&newuser&size=s

要解析查询字符串的参数,请使用URLSearchParams:

const urlParams = new URLSearchParams(queryString);

有关更多信息,请阅读此tutorial

答案 2 :(得分:0)

我们目前也不使用vue路由器。我们使用以下脚本来解析args。

    var args = {};

    var argString = window.location.hash;
    //everything after src belongs as part of the url, not to be parsed
    var argsAndSrc = argString.split(/src=/);
    args["src"] = argsAndSrc[1];
    //everything before src is args for this page.
    var argArray = argsAndSrc[0].split("?");
    for (var i = 0; i < argArray.length; i++) {
        var nameVal = argArray[i].split("=");
        //strip the hash
        if (i == 0) {
            var name = nameVal[0];
            nameVal[0] = name.slice(1);
        }
        args[nameVal[0]] = decodeURI(nameVal[1]);
    } 

答案 3 :(得分:-1)

路由属性出现在this.$route

this.$router是路由器对象的实例,它提供路由器的配置。

您可以使用此获取当前路由查询。$ route.query