这篇文章主要介绍的是javascript重定向url参数的两种方法,下面话不多说,直接看示例代码。
一、字符拼接形式
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;
}
}
二、利用正则
//使用正则
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.split(p3))[1];
} else {
if (p1) {
newpar = p1 + para + '=' + val;
} else {
newpar = para + '=' + val;
}
}
} else {
if (url.indexof("?") == -1) {
newpar = pars +"&"+ 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="重定义参数" />
相关文章:
有关php页面重定向的三种方法
php重定向与伪静态区别
给网站外链进行重定向跳转