使用JavaScript重定向URL參數

BrittanySig 8年前發布 | 8K 次閱讀 URL JavaScript開發 JavaScript

本人從網上查找(如有雷同,不勝榮幸.),并進行了修改,簡單粗暴,實現使用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、利用正則


   //使用正則
        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;
        }

View Code

調用:

<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="重定義參數" />

 

來自:http://www.cnblogs.com/fuguoliang/p/5972916.html

 

 本文由用戶 BrittanySig 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!