JS修改url地址但不刷新页面

当前URL地址:
http://localhost:9600/home/check/JZ999/LP888/111?id=123456

改为:
http://localhost:9600/home/check/JZ999/LP888/222?id=123456

const url = window.location;
const arr = url.pathname.split('/');
arr.pop();
arr.push('222');
const newUrl = url.origin + arr.join('/') + url.search;
history.pushState('', '', newUrl); // 不刷新页面
// url.href = newUrl; // 刷新页面

1、window.location 只读属性,返回一个 Location 对象,其中包含有关文档当前位置的信息。

2、Location.pathname 包含URL中路径部分的一个DOMString,开头有一个“/"。
在上例中,是 /home/check/JZ999/LP888/111

3、split() / pop() / push() / join() 方法都很简单,自行百度

4、Location.origin (en-US) 只读属性,包含页面来源的域名的标准形式DOMString。
在上例中,是 http://localhost:9600

5、Location.search 包含URL参数的一个DOMString,开头有一个“?”。
在上例中,是 ?id=123456

所以,最后的newUrl就是修改后的地址

不刷新页面: history.pushState():
在 HTML 文档中,history.pushState() 方法向当前浏览器会话的历史堆栈中添加一个状态(state)。

查看history.pushState()使用文档

在这个例子中,前两个参数我传了空值,history.pushState(’’, ‘’, newUrl);

刷新页面: 直接写 url.href = newUrl; 不加 history.pushState() 这一句

你可能感兴趣的:(js,前端)