使用js修改url地址参数并修改url地址
2023-09-11 14:19:38 时间
注: 微信小程序和公众号内屏蔽了 eval() 函数,需要用其他方法解决
修改浏览器地址参数:
function changeURLArg(url,arg,arg_val){ var pattern=arg+'=([^&]*)'; var replaceText=arg+'='+arg_val; if(url.match(pattern)){ var tmp='/('+ arg+'=)([^&]*)/gi'; tmp=url.replace(eval(tmp),replaceText); return tmp; }else{ if(url.match('[\?]')){ return url+'&'+replaceText; }else{ return url+'?'+replaceText; } } } /** * 获取url里的参数 * @param arg 参数名 * @returns */ function getURLString(arg) { var reg = new RegExp("(^|&)" + arg + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; }
//调用结果如下: var url = window.location.href; changeURLArg(url, "id", 99); // http://www.csdn.com/?id=99&ttt=3 changeURLArg(url, "haha", 33); // http://www.csdn.com/?id=99&ttt=3&haha=33
读取URL
中的参数、修改URL
参数、动态修改URL replaceState
js代码
/* *获取URL参数 */ function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) { return unescape(r[2]); } return null; };
2、修改URL
参数
//替换指定传入参数的值,paramName为参数,replaceWith为新值 function replaceParamVal(paramName,replaceWith) { var oUrl = this.location.href.toString(); var re=eval('/('+ paramName+'=)([^&]*)/gi'); var nUrl = oUrl.replace(re,paramName+'='+replaceWith); this.location = nUrl; window.location.href=nUrl }
使用:
//http://www.aazj.cn/pc/meeting/card.html?skinColor=30&gid=-1&userId=566&modid=1133&puid=9 replaceParamVal("userId","333") //http://www.aazj.cn/pc/meeting/card.html?skinColor=30&gid=-1&userId=333&modid=1133&puid=9
3、动态修改URL
var newUrl="新的Url"; var stateObject = 0; var title="0" history.replaceState(stateObject,title,newUrl);
javascript 删除 url 中指定参数,并返回 url
实现代码
// 删除url中某个参数,并跳转 function funcUrlDel(name){ var loca = window.location; var baseUrl = loca.origin + loca.pathname + "?"; var query = loca.search.substr(1); if (query.indexOf(name)>-1) { var obj = {} var arr = query.split("&"); for (var i = 0; i < arr.length; i++) { arr[i] = arr[i].split("="); obj[arr[i][0]] = arr[i][1]; }; delete obj[name]; var url = baseUrl + JSON.stringify(obj).replace(/[\"\{\}]/g,"").replace(/\:/g,"=").replace(/\,/g,"&"); return url }; }
//url: http//xx.com/list?page=1&a=5 执行代码 funcUrlDel("page") //http//xx.com/list?a=5
修改浏览器地址:
浏览器窗口有一个history对象,用来保存浏览历史。
检查浏览器是否支持 if (window.history){
// 支持History API
} else {
// 不支持
}
history对象提供了一系列方法,允许在浏览历史之间移动。
其中包括
history.back(); 回退
history.forward(); 前进
history.go(0)//刷新当前页面;
HTML5为history对象添加了两个新方法,history.pushState()和history.replaceState(),用来在浏览历史中添加和修改记录。
都会改变浏览器标签栏中的URL值,区别在于pushState()会将之前的地址记录在history对象中,通过back()可以返回前一页,replaceState()则不能返回
转:
https://blog.csdn.net/weixin_34240657/article/details/92264873
https://blog.csdn.net/WuLex/article/details/89194384
https://blog.csdn.net/WuLex/article/details/89204850
修改 浏览器 地址 https://blog.csdn.net/baiyan_er/article/details/80901553
https://www.cnblogs.com/lbcxq/p/11842713.html
相关文章
- Js: setTimeOut without function argument?
- Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)
- Html Table用JS导出excel格式问题 导出EXCEL后单元格里的000412341234会变成412341234 7-14 会变成 2018-7-14(7月14) 自定义格式 web利用table表格生成excel格式问题 js导出excel增加表头、mso-number-format定义数据格式 数字输出格式转换 mso-number-format:"@"
- html table表格导出excel的方法 html5 table导出Excel HTML用JS导出Excel的五种方法 html中table导出Excel 前端开发 将table内容导出到excel HTML table导出到Excel中的解决办法 js实现table导出Excel,保留table样式
- 腾讯云图片鉴黄集成到C# SQL Server 怎么在分页获取数据的同时获取到总记录数 sqlserver 操作数据表语句模板 .NET MVC后台发送post请求 百度api查询多个地址的经纬度的问题 try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会 不会被执行,什么时候被执行,在 return 前还是后? js获取某个日期
- js_html_input中autocomplete="off"在chrom中失效的解决办法 使用JS模拟锚点跳转 js如何获取url参数 C#模拟httpwebrequest请求_向服务器模拟cookie发送 实习期学到的技术(一) LinqPad的变量比较功能 ASP.NET EF 使用LinqPad 快速学习Linq
- razor----js
- JS监听不到被操作后dom的事件,js动态生成的DOM绑定事件失效,解决方案
- js获取URL地址参数
- JS基础 网络请求
- 【Vue/js】Js中执行变量中的命令语句,也就是所谓的宏替换(很实用的例子)
- js 排序
- 一些通用的js工具类,添加自定义插件
- 【HarmonyOS】【JS】【布局】鸿蒙js开发input 输入框弹出输入法时上方布局被挤扁?
- 【HarmonyOS】【JS】鸿蒙Js camera怎么拍照并使用image显示出来
- js的调用函数前先执行某语句问题
- js 保留两位小数,Js四舍五入,JavaScript Math四舍五入
- base.js,通用js方法,Js方法封装
- JS实现一键回到顶部的功能(兼容所有浏览器,超级详细)
- js里面的实例方法和静态方法
- arcgis api 4.x for js 结合 Echarts4 实现散点图效果(附源码下载)
- 浅析JS标识纯函数的作用及纯函数理解和为什么要构建纯函数
- 推荐4款高星星JS库:canvas库-Fabric.js、JavaScript客户端文件上传库-FilePond、客户端保存文件解决方案-FileSaver、JavaScript在线解压 ZIP 文件-JSZip
- JS魔法堂:不完全国际化&本地化手册 之 拓展篇
- 【HarmonyOS】【JS】【布局】鸿蒙js开发input 输入框弹出输入法时上方布局被挤扁?
- js实现复制功能
- 利用新浪js接口根据ip地址获取实际地址
- JQuery/JS插件 zTree树,点击当前节点展开,其他节点关闭
- js中let和var定义变量的区别