-1

我会有这样的网址:

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

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

使用 Javascript,我想获取要用作变量的 id 和类型,如下所示:

var theID = 1234
var theType = something

但我不知道如何从 URL 中提取这些值并设置上面的值。我怎样才能做到这一点?

4

2 回答 2

2

尝试这个

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'));

演示

于 2013-10-31T14:36:33.150 回答
1

我的 util 函数,它有点脏,但可以完成工作。无需拆分数组,只需几个 indexOf 函数。如果要 utf8 解码值使用 decodeURIComponent(str) 或 iso1 legacy 解码使用 decodeURI(str)

// 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);
}
于 2013-10-31T14:38:28.593 回答