您的位置:首页 > 其它

如何实现AJAX获取数据的情况下改变地址却不刷新页面

2016-12-19 00:00 543 查看
AJAX 都会使用,但是有个问题就是,每次一刷新之前获取的数据就没有了。

为了解决这个问题可以通过URL获取参数配合AJAX无刷新获取内容;

比如 www.a.com 通过AJAX获取了一次内容:参数是b=10;

下次刷新的时又回到www.a.com 是没有参数的,我们就要把之前的参数加到URL 里面

生成www.a.com?b=10;

只是加上去很简单,具体例子在下面

以下是我在表单有参数的时候实现的替换,需要用到正则:

var urlStr =location.href;
urlStr=urlStr.replace(/b=[A-Za-z]*/,"b="+name);
history.replaceState(null,null,urlStr);

我还找来了某个大神写的根据参数替换的函数,理解需要一定正则能力;

var GetQueryString = function (name) {
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");

var r = window.location.search.substr(1).match(reg);
if(r!=null)return (r[2]); return null;
}

直接使用函数就可以获取参数值,剩下的就是替换;

API 说明:history.replaceState(state, title, url)

state:与要跳转到的URL对应的状态信息。

title:可以不传

url:要跳转到的URL地址,不能跨域。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  URL history
相关文章推荐