【发布时间】:2010-07-22 18:51:13
【问题描述】:
我有一个如下所示的网址:http://www.my-site.com/#key=kj123asj。我想使用 javascript 检索 key。
感谢任何帮助。
【问题讨论】:
标签: javascript jquery url
我有一个如下所示的网址:http://www.my-site.com/#key=kj123asj。我想使用 javascript 检索 key。
感谢任何帮助。
【问题讨论】:
标签: javascript jquery url
似乎每个人都在向您指出引用查询字符串的代码。
假设您的参数位于片段中,而不是您给出的示例中的查询字符串中,您可以使用 window.location.hash 属性来访问它们,而无需自己解析整个 URL。
从那里您可以使用类似于其他人提到的代码。像这样的简单循环就可以了。
var values = {},
pairs = window.location.hash.substring(1).split('&'),
pair;
for (var i = 0, len = pairs.length; i < len; i++) {
pair = pairs[i].split('=');
values[pair[0]] = pair[1];
}
alert(values['key']);
【讨论】:
这个JavaScript库可以解析standard format中的查询字符串,也就是说:
http://www.my-site.com/?key=kj123asj
获取key 的代码是:
var qs = new Querystring();
var key = qs.get("key");
【讨论】:
$.extend({
getUrlVars: function(){
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.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;
},
getUrlVar: function(name){
return $.getUrlVars()[name];
}
});
// Get object of URL parameters
var allVars = $.getUrlVars();
// Getting URL var by its nam
var byName = $.getUrlVar('name');
【讨论】:
var matches = location.href.match(/(key=)([a-z0-9]+)$/i);
变量matches 将是一个数组,matches[2] 将包含键的值。
【讨论】:
您可以通过变量 window.location.href 访问整个 URL。之后,只需在字符串中搜索# 或= 字符并提取其后的数据即可。例如:
var s = window.location.href;
var i = s.indexOf('=');
var value = s.substr(i+1);
当然,这只会为您获取第一个值,并且仅在您只有一个要提取的值时才有效。 但是,您可以将该值设为 JSON 编码的对象,如下所示:
http://www.somewebsite.com/#data={key: 1293, foo: "bar"}
然后,做:
var map = JSON.parse(value);
您现在可以使用普通的 JavaScript 技术来访问这些项目:
var key = map['key'] // 1293
var foo = map['foo'] // "bar"
这至少应该让你开始。
【讨论】: