注: 微信小程序和公众号内屏蔽了 eval() 函数,需要用其他方法解决
修改浏览器地址参数:
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; } } } /** * 获取url里的参数 * @param arg 参数名 * @returns */ function getURLString(arg) { var reg = new RegExp("(^|&)" + arg + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; }
//调用结果如下: var url = window.location.href; changeURLArg(url, "id", 99); // http://www.csdn.com/?id=99&ttt=3 changeURLArg(url, "haha", 33); // http://www.csdn.com/?id=99&ttt=3&haha=33
读取URL
中的参数、修改URL
参数、动态修改URL replaceState
js代码
修改浏览器地址:
浏览器窗口有一个history对象,用来保存浏览历史。
检查浏览器是否支持 if (window.history){
// 支持History API
} else {
// 不支持
}
history对象提供了一系列方法,允许在浏览历史之间移动。
其中包括
history.back(); 回退
history.forward(); 前进
history.go(0)//刷新当前页面;
HTML5为history对象添加了两个新方法,history.pushState()和history.replaceState(),用来在浏览历史中添加和修改记录。
都会改变浏览器标签栏中的URL值,区别在于pushState()会将之前的地址记录在history对象中,通过back()可以返回前一页,replaceState()则不能返回
转:
https://blog.csdn.net/weixin_34240657/article/details/92264873
https://blog.csdn.net/WuLex/article/details/89194384
https://blog.csdn.net/WuLex/article/details/89204850
修改 浏览器 地址 https://blog.csdn.net/baiyan_er/article/details/80901553
https://www.cnblogs.com/lbcxq/p/11842713.html