it-swarm.com.de

Entfernen Sie mit JavaScript einen Parameter zur URL

Ursprüngliche URL:

http://yourewebsite.php?id=10&color_id=1

Resultierende URL:

http://yourewebsite.php?id=10

Ich habe die Funktion zum Hinzufügen von Param

function insertParam(key, value){
    key = escape(key); value = escape(value);
    var kvp = document.location.search.substr(1).split('&');
    var i=kvp.length; var x; while(i--) 
    {
        x = kvp[i].split('=');

        if (x[0]==key)
        {
            x[1] = value;
            kvp[i] = x.join('=');
            break;
        }
    }
    if(i<0) {kvp[kvp.length] = [key,value].join('=');}

    //this will reload the page, it's likely better to store this until finished
    document.location.search = kvp.join('&'); 
}

aber ich muss funktionieren, um Param zu entfernen

40
Jows

Versuche dies. Übergeben Sie einfach den Parameter, den Sie aus der URL entfernen möchten, und den ursprünglichen URL-Wert, und die Funktion entfernt ihn für Sie.

function removeParam(key, sourceURL) {
    var rtn = sourceURL.split("?")[0],
        param,
        params_arr = [],
        queryString = (sourceURL.indexOf("?") !== -1) ? sourceURL.split("?")[1] : "";
    if (queryString !== "") {
        params_arr = queryString.split("&");
        for (var i = params_arr.length - 1; i >= 0; i -= 1) {
            param = params_arr[i].split("=")[0];
            if (param === key) {
                params_arr.splice(i, 1);
            }
        }
        rtn = rtn + "?" + params_arr.join("&");
    }
    return rtn;
}

Um es zu benutzen, mache einfach so etwas:

var originalURL = "http://yourewebsite.com?id=10&color_id=1";
var alteredURL = removeParam("color_id", originalURL);

Das var alteredURL ist die Ausgabe, die Sie wünschen.

Ich hoffe es hilft!

85
Anthony Hessler
function removeParam(parameter)
{
  var url=document.location.href;
  var urlparts= url.split('?');

 if (urlparts.length>=2)
 {
  var urlBase=urlparts.shift(); 
  var queryString=urlparts.join("?"); 

  var prefix = encodeURIComponent(parameter)+'=';
  var pars = queryString.split(/[&;]/g);
  for (var i= pars.length; i-->0;)               
      if (pars[i].lastIndexOf(prefix, 0)!==-1)   
          pars.splice(i, 1);
  url = urlBase+'?'+pars.join('&');
  window.history.pushState('',document.title,url); // added this line to Push the new url directly to url bar .

}
return url;
}

Dies wird Ihr Problem lösen

10
Arun Chandran C