利用HTML5 history新特性replaceState方法可以修改当前页面地址栏参数,示例代码:
//选择日期后改变地址栏
var urlSearch = location.href;
var unformatStr = changeURLArg(urlSearch, "depDate", Qdate);
if (!!(window.history && history.pushState)) {
history.replaceState(null, "", unformatStr);
}
function changeURLArg(url, arg, arg_val) {
var pattern = arg + '=([^&]*)';
var replaceText = arg + '=' + arg_val;
if (url.match(pattern)) {
var tmp = '/(' + arg + '=)([^&]*)/gi';
tmp = url.replace(eval(tmp), replaceText);
return tmp;
} else {
if (url.match('[\?]')) {
return url + '&' + replaceText;
} else {
return url + '?' + replaceText;
}
}
}
类似的方法还有pushState,具体请参考以下资料。
参考资料:
http://blog.csdn.net/tianyitianyi1/article/details/7426606