我会有这样的网址:
http://website/index.html?id=1234&type=something
传递的 id 和类型将根据用户在另一端的操作而有所不同。
使用 Javascript,我想获取要用作变量的 id 和类型,如下所示:
var theID = 1234
var theType = something
但我不知道如何从 URL 中提取这些值并设置上面的值。我怎样才能做到这一点?
我会有这样的网址:
http://website/index.html?id=1234&type=something
传递的 id 和类型将根据用户在另一端的操作而有所不同。
使用 Javascript,我想获取要用作变量的 id 和类型,如下所示:
var theID = 1234
var theType = something
但我不知道如何从 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 解码值使用 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);
}