JS/JavaScript修改浏览器URL参数且不刷新页面

编程教程 > WEB > JavaScript (10) 2025-04-11 15:09:36

简介

 

使用 JavaScript 改变 URL 参数值并且页面不刷新的方法有两种模式:

  • 使用 History replaceState
  • 使用 History pushState

 

使用 History replaceState 

 

// 获取当前 URL 的参数
let searchParams = new URLSearchParams(window.location.search);
// 修改参数值
searchParams.set('paramName', 'paramValue');
const newBrowserUrl = new URL(window.location);
newBrowserUrl.search = searchParams.toString();
// 创建一个新的 URL,替换当前的 URL 但不刷新页面
window.history.replaceState({}, '', newBrowserUrl.toString());

 

使用 History pushState (推荐)

const browserUrlParams = new URLSearchParams(window.location.search);
browserUrlParams.set('projectId',params.projectId);
browserUrlParams.set('groupId',params.groupId);

const newBrowserUrl = new URL(window.location);
newBrowserUrl.search = browserUrlParams.toString();
history.pushState({}, '', newBrowserUrl);

区别

history.replaceState() 的使用与 history.pushState() 非常相似,区别在于 replaceState() 是修改了当前的历史记录项而不是新建一个。

 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
简介 使用 JavaScript 改变 URL 参数值并且页面不刷新的方法有两种模式:使用 History replaceState使用 History pus
一、简介HTML5引入了 history.pushState() 和 history.replaceState() 方法,它们分别可以添加和修改历史记录条目。这
javascript中onclick事件传递对象参数,javascript,javascript传递对象参数
JavaScript/JS读取文本/JSON文件内容let file = files[0];var reader = new FileReader();read
JavaScript/JS数组清空,删除数组内所有数据。Array=[]与Array.length=0的区别
JavaScript H5原生操作元素class,包括获取元素class值,设置class值修改元素class值操作。示例数据 <head&gtl; <meta cha
​JavaScript 数学小数精确计算<!DOCTYPE html&gtl; <html&gtl; <head&gtl; <title&gtl;</tit...
JavaScript正则加上/去掉cdn域名前缀,文本支持<script&gtl;let $domain="https://static-project.example
<body&gtl; <script type="text/javascript"&gtl;   function test(){     let obj={        ...
方式一 spliceJavaScript 中的 splice() 方法可用于在数组中添加或删除元素。如果我们需要删除数组中的元素,可以使用 splice() 方
JavaScript/jquery选择同级兄弟节点选择上下级节点方法<script&gtl;function js_selector() {var s= documen
javascript(js)onclick 传递多个字符变量参数<a title="点击下载附件" onclick="downloadFile(\''+row.url+'\',\''+ro...
JavaScript集合(Array)转树(tree)结构js 原生数组转树形结构 /** * 将list装换成tree * @param {Object} myId 数据主键id * ...
在IDEA中对如下标签进行修改:File-&gtl;settings-&gtl;Languages & Frameworks-&gtl;JavaScript 中的参数JavaScript lan...
前言在其他编程语言中,我们可以通过划分模块,来组织庞大复杂的项目,而JS一开始并没有模块的概念,因为一开始JS的脚本就很简单。后来随着JS的发展,前端要开发的项