我有代碼錨獲取部分:如何編輯錨的一部分,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