当前位置:首页 > JavaScript

js实现queryparams

2026-04-06 06:23:24JavaScript

获取 URL 查询参数(QueryParams)

方法一:使用 URLSearchParams API
现代浏览器支持 URLSearchParams 接口,可直接解析查询字符串:

const urlParams = new URLSearchParams(window.location.search);
const paramValue = urlParams.get('key');

方法二:手动解析查询字符串
适用于不支持 URLSearchParams 的环境:

js实现queryparams

function getQueryParam(key) {
  const params = {};
  window.location.search.slice(1).split('&').forEach(pair => {
    const [k, v] = pair.split('=');
    params[k] = decodeURIComponent(v || '');
  });
  return params[key];
}

修改或添加查询参数

更新参数并跳转
通过 URLSearchParams 修改后生成新 URL:

js实现queryparams

const urlParams = new URLSearchParams(window.location.search);
urlParams.set('page', '2');
window.location.search = urlParams.toString();

保留历史记录(不刷新)
使用 history.pushState 更新 URL 而不刷新页面:

const urlParams = new URLSearchParams(window.location.search);
urlParams.set('sort', 'desc');
const newUrl = `${window.location.pathname}?${urlParams.toString()}`;
history.pushState({}, '', newUrl);

删除查询参数

移除单个参数
通过 URLSearchParams.delete() 实现:

const urlParams = new URLSearchParams(window.location.search);
urlParams.delete('filter');
window.location.search = urlParams.toString();

注意事项

  • 参数值需用 encodeURIComponent 编码,避免特殊字符(如 &, =)破坏结构
  • URLSearchParams 不兼容 IE,需 polyfill 或降级方案
  • 修改 window.location.search 会触发页面刷新

标签: jsqueryparams
分享给朋友:

相关文章

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码 funct…

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…

js图片上传实现

js图片上传实现

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API实现基础图片上传功能。HTML部分需要设置accept="image/…