使用JavaScript重定向URL参数
简单实现使用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;
}
}
2、利用正则
function setPara(para, val) {
var newpar = "";
var url = window.location.href;
var pars = location.search.substring(1); var reg = new RegExp("(^|)" + para + "=([^&]*)(|$)");
if (reg.test(pars)) { //有需要的参数para var p1 = pars.split(para)[0]; //productID=100857&count=1&
var p2 = pars.split(para)[1]; //=75825&coupval=1.5&addressID=358&invoiceID=1245&invoiceName=jesse if (p2.indexOf("&") > -1) {
var p3 = p2.split("&")[0];
if (p3 == "=" + val + "") {
return false;
}
newpar = p1 + para + '=' + val + p2.substr(2);
} else {
if (p1) {
newpar = p1 + para + '=' + val;
} else {
newpar = para + '=' + val;
}
}
} else {
if (url.indexOf("?") == -1) { //没有参数
newpar = para + "=" + val;
} else {
newpar = pars + "&" + para + "=" + val;
}
}
window.location.href = location.href.split('?')[0] + "?" + newpar;
}
调用:
<script>
window.onload = function () {
var btn = document.getElementById("btnClick"); btn.onclick = function () { // url地址:http://localhost:54714/testuri.aspx?productID=100857&count=1&coupresId=12785&coupval=1.5&openId=12456&addressID=358&invoiceID=&invoiceName=
//setUri("coupresId", 0);
setPara("coupresId", 0);
}
}
</script> <input type="button" id="btnClick" value="重定义参数" />
使用JavaScript重定向URL参数的更多相关文章
- 多浏览器兼容用javascript获取url参数的方法比较推荐的一种
多浏览器兼容用javascript获取url参数的方法比较推荐的一种 <script language = javascript> function request(paras){ var ...
- javascript获取url参数的方法
发布:thatboy 来源:Net [大 中 小] 本文介绍下,在javascript中取得url中某一个参数的方法,这里分享一个小例子,供大家学习参考下.本文转自:http://www. ...
- javascript获取URL参数和参数值
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- JavaScript获取URL参数公共方法
写一个JavaScript获取URL参数的通用方法,可以把它放到常用方法的JS文件中调用,直接上代码例子,新手可以学习一下! <!DOCTYPE html> <html lang=& ...
- 用JavaScript获取URL参数的方法之一
若地址栏URL为:abc.html?m=tomms&c=allsearchlist&pageNo=1&pageNum=20&text=1 <script> ...
- javascript 获取url参数
/** window.location.search获取url地址?以后的值 获取url参数有两种方法,第一种如下,第二种是通过正则 */ //基本版 function getParam() { va ...
- JavaScript获取URL参数方法总汇
现在做页面基本都用AJAX,因此导致操作很麻烦,每次都需要通过JS获取url中的参数值,网上所搜到很多资料,没一次能记住的,也不知道在哪个项目中使用过,现在又需要通过JS获取url参数,因此不能在偷懒 ...
- javascript取url参数的几种方法
//获取QueryString的数组 function getQueryString() { var result = location.search.match(new RegExp("[ ...
- Javascript 获取url参数,hash值 ,cookie
/** * 获取请求参数 * @param key * @returns {*} */ function getRequestParameter(key){ var params = getReque ...
随机推荐
- C# DataTable 转换成JSON数据
原文:C# DataTable 转换成JSON数据 using System; using System.Collections.Generic; using System.Data; using S ...
- javascript 学习总结(四)Date对象
1.Date.now() //Date.now() is in ECMAScript 5 //Prior to that, use +new Date() //获取当前时间 var now = (ty ...
- How To : Create SQL Server Management Studio Addin
原文 How To : Create SQL Server Management Studio Addin Read the full and original article from Jon Sa ...
- CentOS下JAVA WEB 环境搭建
首先介绍下我的软件环境.虚拟机Vmware9.0(已经汉化),CentOS6.4(选择安装语言为简体中文),xshell4.0(强大的安全终端模拟软件),xftp4.0(FTP工具). 方便大家环境搭 ...
- 自己写RTPserver——大约RTP协议
自己写RTPserver--大约RTP协议 本文将带领你一步一步地实现一个简单的手RTP变速器server,旨在了解RTP流媒体传输协议以及有关多媒体编解码器的一些知识. RTP协议的必备知识 要动手 ...
- String.Join的实现
String.Join的实现 在开发中,有时候会遇到需要把一个List对象中的某个字段用一个分隔符拼成一个字符串的情况.比如在SQL语句的in条件中,我们通常需要把List<int>这样的 ...
- Binder机制,从Java到C (8. ServiceManager in Native)
在第三篇 Binder机制,从Java到C (3. ServiceManager in Java) 中,讲到ServiceManager的Stub端在Native,Proxy端在Java.实际上,还要 ...
- UVA 568 (13.07.28)
Just the Facts The expression N!, read as `` N factorial," denotes the product of the first N ...
- 使用MMS(MongoDB Monitoring Service)监控MongoDB
使用MMS(MongoDB Monitoring Service)监控MongoDB 一.MongoDB简介: MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可 ...
- 通过Func 委托理解委托和匿名方法及Lambda 表达式
Func<T, TResult> 委托 封装一个具有一个参数并返回 TResult 参数指定的类型值的方法. 命名空间: System 程序集: mscorlib(在 mscorlib.d ...