js修改当前页面地址栏参数

利用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

posted @ 2017-11-13 17:16  skybirdzw  阅读(1817)  评论(0编辑  收藏  举报