使用js修改url地址参数并修改url地址

如何在JS中实现修改URL参数而不刷新页面 在网页开发中,经常会遇到需要在不刷新页面的情况下修改URL参数的需求。这在许多情况下都是非常有用的,比如在单页面应用程序中动态更新页面内容,或者在需要动态加载不同数据的情况下。本文将介绍如何在JavaScript中实现这一功能。 阅读详情

注: 微信小程序和公众号内屏蔽了  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.youkuaiyun.com/weixin_34240657/article/details/92264873

https://blog.youkuaiyun.com/WuLex/article/details/89194384

https://blog.youkuaiyun.com/WuLex/article/details/89204850

修改 浏览器 地址 https://blog.youkuaiyun.com/baiyan_er/article/details/80901553

https://www.cnblogs.com/lbcxq/p/11842713.html

JS黑科技:不刷新页面修改URL的3种方法(含360浏览器兼容方案) 本文深入解析JavaScript无刷新修改URL的3种方法,包括history.pushState()、history.replaceState()和location.hash技术,并针对360浏览器的兼容性问题提供详细解决方案。特别介绍了360浏览器特有的表单警告问题及其应对策略,帮助开发者实现更流畅的单页应用体验。 阅读详情

相关推荐

f2fs学习笔记 - 3. F2FS文件系统布局

目录1.前言2.F2FS布局说明2.1. super block(block 0x0 ~ block 0x1ff)2.2 CP(block 0x200 ~ block 0x5ff)cp page1nat journalsit journaldata summarycurrent hot node summarycurrent warm node summarycurrent cold node summarycp page22nd checkpoint2.3 SIT(block 0x600 ~ block

HZero 4643

js修改浏览器地址栏里url的方法

【代码】js修改浏览器地址栏里url的方法。

不怕麻烦的鹿丸的博客 2061

2025反爬虫革命:京东商品接口的动态指纹认证与量子加密传输方案

在2025年,全球电商API接口面临的安全威胁呈现指数级增长:京东构建了基于硬件、软件、行为三重维度的设备指纹模型:京东构建了基于BB84+E91混合协议的量子密钥中继网络:

FB13713612741的博客 1647

js修改地址栏参数

js修改地址栏参数

咖啡味的小认真 1480

STM32 FOC电机控制:手把手教你用CubeMX配置TIM1中心对齐PWM(含代码避坑)

本文详细解析了STM32 FOC电机控制中TIM1中心对齐PWM的配置方法,涵盖CubeMX图形化设置、HAL库代码调用及常见问题排查。特别针对L6230Q驱动芯片的使能逻辑和死区时间配置提供实用指南,帮助开发者高效实现无刷电机的高性能控制。

weixin_27027459的博客 442

告别Vysor!用Scrcpy在Mac上无线投屏安卓手机(附魅族16th闪退修复实战)

本文详细介绍了如何在Mac上配置和使用开源投屏工具Scrcpy,实现安卓手机无线投屏的高效解决方案。从基础环境准备到高级功能调优,包括无线连接配置、输入控制增强、多设备管理和性能优化等实用技巧,特别针对魅族16th等机型的闪退问题提供了修复方案,帮助用户彻底告别Vysor等商业软件。

weixin_28712661的博客 393

JS 在不跳转情况下修改地址栏URL参数

JS 在不跳转情况下修改地址栏URL参数

qq_41241504的博客 2590

告别MATLAB依赖:手把手教你用Python实现GCC-PHAT时延估计(附完整代码与对比测试)

本文详细介绍了如何使用Python实现GCC-PHAT时延估计算法,替代传统的MATLAB依赖。通过完整的代码示例和性能对比测试,展示了Python在信号处理领域的强大能力,特别是在广义互相关和TDOA应用中的高效实现。文章还提供了实时音频处理和嵌入式部署的实用技巧,帮助工程师快速掌握这一关键技术。

weixin_42667269的博客 219

获取和更改页面Url地址栏后面的参数

//接受URL地址参数 function getQueryString(name) { //name为传入参数 var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.loc...

Eling 8455

ESP32C6+ESP-IDF5.2实战:基于RS485的ModbusRTU从站开发与调试

本文详细介绍了基于ESP32C6和ESP-IDF5.2开发ModbusRTU从站的实战指南。涵盖硬件连接、协议实现、ESP-Modbus库移植、寄存器映射及调试技巧,帮助开发者快速构建稳定可靠的工业级RS485通信节点,并解决常见通信故障。

play7的博客 1188

实战 | OpenCV实现扫描文本矫正应用与实现详解(附源码)

导读 本文主要介绍使用OpenCV对扫描文本矫正的应用实例及详细实现步骤。 背景介绍 在使用打印机或扫描仪扫描文档时,由于摆放位置差异难免造成扫描文档的倾斜。本文将使用OpenCV将倾斜的文档矫正水平并去除黑边。 实现步骤 本文只针对包含大部分文字的文档做倾斜矫正,思路来源是大部分文字倾斜后同一行的也在同一条直线,通过拟合直线计算文本倾斜角度,然后旋转来实现文本倾斜矫正。 详细步骤: ①加载倾斜图像 ②灰度转换+腐蚀+膨胀 ③Canny边缘检测 + 霍夫线变换检测直线 ...

Color Space的博客 3398

js 获取URL地址

js 获取URL地址。 js 获取修改父框架的标题title     function getRequest() { var url = location.search; var theRequest = new Object(); alert(url); if (url.indexOf("?") != -1) { var str = url.substr(1);

猎人在吃肉 1629

SpringBoot 整合 Drools:从环境搭建到复杂业务落地,精通规则引擎实战指南

本文介绍了Drools规则引擎的基础概念及其与SpringBoot的整合方法。首先概述了规则引擎的核心价值,包括业务规则解耦、可维护性提升等。重点讲解了Drools的核心组件(规则、事实、会话等)及其工作原理。随后详细说明了在SpringBoot项目中集成Drools的步骤,包括添加依赖、配置自动加载规则文件、创建KieContainer等关键配置类。文章还提供了完整的DRL规则文件示例和SpringBoot集成配置代码,为开发人员提供了从理论到实践的完整指导。通过这种方式,可以轻松实现业务规则与系统代码的

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1430

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

html隐藏地址栏,js新打开页面隐藏地址栏

newsclass=" + getUrlParam('newsclass');//此处因为有其他判断所有用jquery 正常用js跳转就可以 })func...window.location.href.substring(window.location.href.lastIndexOf('/')+1, window.location.href.lastIndexOf('.'));前言所谓IE地...

weixin_32770297的博客 3708

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

JS修改地址栏参数实例代码

function changeURLPar(destiny, par, par_value) { var pattern = par+'=([^&]*)'; var replaceText = par+'='+par_value; if (destiny.match(pattern)) { var tmp = '/\\'+par+'=[^&]*/'; tmp = ...

weixin_30583563的博客 496

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

[Javascript] 用javascript给地址栏添加参数

页面代码: 代码 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http...

weixin_30478757的博客 345

pdf.js使用说明及禁止下载,打印

PdfJS使用的一些说明 参考:https://blog.youkuaiyun.com/qubernet/article/details/82599613?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-4&spm=1001.2101.3001.4242 1、下载地址 http://mozilla.github.io/pdf.js/getting_started/#download 当然是下载稳定版。 2、...

tongluren381的博客 4972

常用Js,JQuery

1、跳转 window.location.href="/m/login?toUrl="+window.location.href;

binglong180 170

jquery 和php链接地址,jquery地址栏链接与a标签链接匹配的特效

这篇文章主要介绍了关于jquery地址栏链接与a标签链接匹配的特效,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下jquery如何获取地址栏参数,改变地址栏样式,接下来,通过本篇文章给大家分享jquery地址栏链接与a标签链接匹配之特效代码总结,需要的朋友可以参考下如题所述,当出现这样的功能,点击某个链接后,给跳转后的该链接地址添加样式,通过添加class为current来增加特殊样...

weixin_35960434的博客 155

使用js修改url地址参数

该方法可以修改url的参数。 例如将   www.baidu.com 修改为   www.baidu.com?name=123 操作为:   window.location.href = changeURLArg(window.location.href,'name',123) function changeURLArg(url,arg,arg_val){ var pattern=a...

极客神殿 1万+

JS 修改地址栏URL参数 不跳转

let url = changeURLParam(location.href, name, value); // 修改 URL 参数 history.replaceState(null, null, url); // 替换地址栏不跳转

黄连木笛 1万+

js 设置与修改url参数的实现代码

使用js设置url参数。 代码: // 获取地址栏的参数数组 function getUrlParams() { var search = window.location.search; // 写入数据字典 var tmparray = search.substr(1, search.length).split("&"); var paramsAr

jbxue123的专栏 3766

Js读取url中的参数、修改url的参数

Js读取url中的参数、修改url的参数 1、读取url的某个参数值: 1 2 3 4 5 6 7 8 9 10 11 12 /* *获取URL参数 */ functionGetQueryString(name) { varr...

超域的博客 626

前端js添加修改URL参数的方法,修改地址后,可以不刷新页面,用了那么久,居然又发现了BUG,这下完美了

最近做项目,发现之前搞的replaceParamVal()方法有bug,重新修改后,应该完美了。上代码//URL替换指定传入参数的值,paramName为参数,replaceWith为新值,isRefresh为是否刷新页面,0表示不需要刷新,这个最牛举例:https://www.aazj.cn/index.html?popenid=757522579上面这个地址js调用方法:replaceParamVal("popenid","600",0),就会在地址栏上修改参数popenid=600,不会刷新页面,新地

xnzsxnzs的专栏 4656
上一篇: 解决DIV层被OBJECT、SELECT控件遮盖问题
下一篇: SpringMVC下载大文件时内存溢出的处理方法
shadow_zed
博客等级 码龄10年 6289粉丝 68原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值