博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用JavaScript重定向URL参数
阅读量:4702 次
发布时间:2019-06-09

本文共 2719 字,大约阅读时间需要 9 分钟。

简单实现使用JavaScript重置url参数 ,两种方法,一种字符串拼接形式,一种使用正则判断,且都已经测试通过。供大家参考指教。

1、字符拼接形式

function setUri(para, val) {            var strNewUrl = new String();            var strUrl = new String();            var url = window.location.href;            strUrl = window.location.href;            if (strUrl.indexOf("?") != -1) {                strUrl = strUrl.substr(strUrl.indexOf("?") + 1);   //获取参数                if (strUrl.toLowerCase().indexOf(para.toLowerCase()) == -1) {  //如果没有找到参数,则直接赋值                    strNewUrl = url + "&" + para + "=" + val;                    window.location.href = strNewUrl;                } else {                    var aParam = strUrl.split("&");                    for (var i = 0; i < aParam.length; i++) {                        if (aParam[i].substr(0, aParam[i].indexOf("=")).toLowerCase() == para.toLowerCase()) {                            aParam[i] = aParam[i].substr(0, aParam[i].indexOf("=")) + "=" + val;                        }                    }                    strNewUrl = url.substr(0, url.indexOf("?") + 1) + aParam.join("&");                    window.location.href = strNewUrl;                }            } else {                strUrl += "?" + para + "=" + val;                window.location.href = strUrl;            }        }
View Code

2、利用正则

1  function setPara(para, val) { 2             var newpar = ""; 3             var url = window.location.href; 4             var pars = location.search.substring(1); 5  6             var reg = new RegExp("(^|)" + para + "=([^&]*)(|$)"); 7             if (reg.test(pars)) {   //有需要的参数para 8  9                 var p1 = pars.split(para)[0];   //productID=100857&count=1&10                 var p2 = pars.split(para)[1];   //=75825&coupval=1.5&addressID=358&invoiceID=1245&invoiceName=jesse11 12                 if (p2.indexOf("&") > -1) {13                     var p3 = p2.split("&")[0];14                     if (p3 == "=" + val + "") {15                         return false;16                     }17                     newpar = p1 + para + '=' + val + p2.substr(2);18                 } else {19                     if (p1) {20                         newpar = p1 + para + '=' + val;21                     } else {22                         newpar = para + '=' + val;23                     }24                 }25             } else {26                 if (url.indexOf("?") == -1) {  //没有参数27                     newpar = para + "=" + val;28                 } else {29                     newpar = pars + "&" + para + "=" + val;30                 }31             }32             window.location.href = location.href.split('?')[0] + "?" + newpar;33         }
View Code

 调用: 

 

转载于:https://www.cnblogs.com/fuguoliang/p/5972916.html

你可能感兴趣的文章
国内的黄金及现货黄金交易所
查看>>
建站手册-网站主机:主机性能
查看>>
DM9000驱动移植在mini2440(linux2.6.29)和FS4412(linux3.14.78)上的实现(deep dive)篇一
查看>>
电路分析
查看>>
unity开源移动库iTween使用完整Demo
查看>>
QT动态库和静态库使用
查看>>
Kali Linux安装
查看>>
抓取阻塞信息
查看>>
实验三
查看>>
Mysql优化配置
查看>>
Spring Boot 学习笔记(三)
查看>>
Mac下安装MySQL-python
查看>>
每天CookBook之JavaScript-022
查看>>
hdu 过山车(匈牙利算法求最大匹配)
查看>>
跟我做WinForm开发(1)-自定义UI
查看>>
C#:GridView导出Excel,以及runat=server错误处理方法
查看>>
cat 命令(转)
查看>>
ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法
查看>>
插件机制
查看>>
浅析依赖注入
查看>>