js 可以修改浏览器url地址不刷新吗?

是的,通过 JavaScript 可以修改浏览器地址栏中的 URL,而不引起页面刷新。
主要的方法有两个:
1. 使用 window.history.pushState() 方法:
js
window.history.pushState(null, null, 'new-url');
这个方法可以把当前页面的 URL 改成指定的 URL,但不会触发 hashchange 事件,也不会重新加载页面。
2. 使用 window.location.hash 修改 hash 值:
js
window.location.hash = 'new-hash';
这样可以修改 URL 的 hash 部分,同样不会重新加载页面。
需要注意的是,这两种修改只是改变了浏览器地址栏中的显示,但没有切换页面内容。
如果需要切换显示不同的页面内容,还需要监听 popstate 事件或者 hashchange 事件,在事件回调函数中根据 URL 的变化修改 DOM。
另外,修改后的 URL 如果直接输入进入,还需要在服务端配合进行处理,返回对应的页面内容。
如果只是希望改变地址栏 URL,而不需要对应不同的内容,那么直接使用上面的方法修改就可以实现。

1chigua

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注