我有代码锚获取部分:如何编辑锚的一部分,URL
function _get_part(queryString, name) {
var match = '&' + name + '=';
var i = queryString.indexOf(match);
if(i < 0) {
match = name + '=';
if(queryString.slice(0, match.length) == match)
i = 0;
}
if(i > -1) {
i += match.length;
return queryString.slice(i, queryString.indexOf('&', i) >>> 0);
}
};
function get_location_hash() {
return window.location.hash.substr(2);
}
function get_part(name) {
return _get_part(get_location_hash(), name);
}
我需要改变锚的一部分的功能,如果这部分不存在,或者如果它添加零件不存在。
这时我使用下面的代码:
function set_part(queryString, key, value) {
var oldv = key + '=' + get_part(key);
var newv = key + '=' + value;
window.location.hash = '/' + queryString.replace(oldv, newv);
}
但是,如果锚的部分不存在,锚不会改变。
URL格式:...页/#/ VAR1 = blablabla & VAR2 = var2text & gghh = edere
锚 - #/ VAR1 = blablabla & VAR2 = var2text & gghh = edere
对不起我的英文。
非常感谢!
更新:
它真棒,非常感谢你! 只有一个问题: ... /页/ NEX使用以下代码::withoud任何锚我加载页面
set_part(get_location_hash(), 'filter', 'data');
set_part(get_location_hash(), 'filter2', 'data2');
set_part(get_location_hash(), 'fdgfg', 'fdgfdg');
alert(get_part('fdgfg'));
和接收... /页/#/ = &滤波器=数据&过滤器2 = data2 & fdgfg = fdgfdg
如何删除第一个'='符号?
太棒了,非常感谢你! 只有一个问题:我加载页面withoud任何锚点: http://.../page/ nex使用此代码: set_part(get_location_hash(),'filter','data'); set_part(get_location_hash(),'filter2','data2'); set_part(get_location_hash(),'fdgfg','fdgfdg'); alert(get_part('fdgfg')); 并收到http://.../page/#/=&filter=data&filter2=data2&fdgfg=fdgfdg 如何删除第一个'='符号? – user492996 2010-10-31 22:13:27
oops。我在'_parseQueryString()'的for循环的开头添加了两行。这将解决这个问题。 – Lee 2010-10-31 22:39:30
非常感谢你! – user492996 2010-10-31 22:43:52