http://www.domainname.com/#changepassword
我需要使用上面的URL传递一个额外的变量。
我尝试过几种方法,但我不确定最好的方法,例如:
http://www.domainname.com/#changepassword?variable
我正在使用以下JQUERY来捕获HASH:
if (window.location.hash != '') {
var hash = window.location.hash.substring(1);
if(hash == 'changepassword') { // Password Change
alert('changepassword');
}
}
如何使用HASH传递额外的变量?捕获HASH和额外变量的最佳方法。
THX
答案 0 :(得分:0)
我建议您使用jQuery URL插件,而不是自己进行解析:https://github.com/allmarkedup/jQuery-URL-Parser
答案 1 :(得分:0)
您正在将location.hash
与location.search
- see here for the explanation
您可以只使用location.hash
并在您的"变量"之间放置一个分隔符。 :
例如..如果这是您的网址http://www.domainname.com/#changepassword-variable-another
,那么您可以
var hash = window.location.hash.substring(1);
var hasharray = hash.split['-']
if(hasharray[0] == 'changepassword') { // Password Change
alert('changepassword');
}
或者您可以使用location.search
和以下示例:
网址:http://www.domainname.com/?command=changepassword&var=variable&var2=another
这使用key=value
格式,然后使用以下方法访问values
function getQueryString() {
var result = {}, queryString = location.search.substring(1),
re = /([^&=]+)=([^&]*)/g, m;
while (m = re.exec(queryString)) {
result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);
}
return result;
}
然后,您可以通过传递函数key
var command = getQueryString()["command"];
if(command == 'changepassword') { // Password Change
alert('changepassword');
}
答案 2 :(得分:0)
"#ffsf?sdff?sffsfd".match(/(?!\?)\w+/g)
结果:
["ffsf", "sdff", "sffsfd"] // Array
无论如何,你应该更准确地说明你打算做什么。