如何使用Javascript从URL中提取值?

如何使用Javascript从URL中提取值?,javascript,Javascript,我将有一个如下URL: http://website/index.html?id=1234&type=something 传递的id和类型将根据用户在另一端执行的操作而有所不同 使用Javascript,我希望获得用作变量的id和类型,如下所示: var theID=1234 变量类型=某物 但我不知道如何从URL中提取这些值,并像上面那样设置这些值。我该怎么做呢?试试这个 function qs(url, key) { var vars = [], hash; var hash

我将有一个如下URL:

http://website/index.html?id=1234&type=something

传递的id和类型将根据用户在另一端执行的操作而有所不同

使用Javascript,我希望获得用作变量的id和类型,如下所示:

var theID=1234 变量类型=某物

但我不知道如何从URL中提取这些值,并像上面那样设置这些值。我该怎么做呢?

试试这个

function qs(url, key) {
    var vars = [], hash;
    var hashes = url.slice(url.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[key];
}

var url = YourUrl;
alert(qs(url,'id'));

我的util函数,有点脏,但可以完成任务。不需要拆分数组,只需要几个indexOf函数。如果要使用utf8解码值,请使用decodeURIComponentstr或iso1传统解码值,请使用decodeURIstr

// parse parameter value from url (case sensitive)
function getURLParam(strURL, strKey) {
   // http://mywebapp/do.url?key1=val1&key2=val2
   var idx = strURL.indexOf('?');
   if (idx < 0) return ""; // no params

   // "&key1=val1&key2=val2&"
   strURL = "&" + strURL.substring(idx+1) + "&";
   idx = strURL.indexOf("&" + strKey + "=");
   if (idx < 0) return ""; // param not found

   // "&key1=val1&key2=val2&" -> "val1&key2=val2&" -> "val1"
   strURL = strURL.substring(idx + strKey.length + 2);
   idx = strURL.indexOf("&");    
   return strURL.substring(0, idx);
}

重复:@davidbq-谢谢,这正是我所需要的。我不想将任何值传递到函数中,而这段代码直接从URL获取它。谢谢