Heim  >  Artikel  >  Web-Frontend  >  Zusammenfassung zweier Methoden zum Umleiten von URL-Parametern in JavaScript

Zusammenfassung zweier Methoden zum Umleiten von URL-Parametern in JavaScript

高洛峰
高洛峰Original
2017-03-23 15:48:542104Durchsuche

In diesem Artikel werden hauptsächlich zwei Methoden zum Umleiten von URL-Parametern in JavaScript vorgestellt. Ich werde im Folgenden nicht viel sagen, schauen Sie sich einfach den Beispielcode an.

1. Zeichenverbindungsform

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. Verwendung regulärer Regeln

//使用正则
  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 + &#39;=&#39; + val + &#39;&&#39; + (p2.split(p3))[1];
      } else {
        if (p1) {
          newpar = p1 + para + &#39;=&#39; + val;
        } else {
          newpar = para + &#39;=&#39; + val;
        }
      }
    } else {
      if (url.indexOf("?") == -1) {
        newpar = pars +"&"+ para + "=" + val;
      } else {
        newpar = pars + "&" + para + "=" + val;
      }
    }
    window.location.href = location.href.split(&#39;?&#39;)[0] + "?" + newpar;
  }

zum Aufrufen von:

<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="重定义参数" />

Verwandte Artikel:

Drei Methoden zur PHP-Seitenumleitung

Der Unterschied zwischen PHP-Umleitung und pseudostatischer Umleitung

Geben Sie externe Links an zur Website Machen Sie eine Weiterleitung

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn