Saltar al contenido

Agregar/cambiar parámetro de URL y redirigir a la nueva URL

La guía paso a paso o código que encontrarás en este post es la solución más eficiente y efectiva que encontramos a tus dudas o dilema.

Solución:

function setGetParameter(paramName, paramValue)

    var url = window.location.href;
    var hash = location.hash;
    url = url.replace(hash, '');
    if (url.indexOf(paramName + "=") >= 0)
    
        var prefix = url.substring(0, url.indexOf(paramName + "=")); 
        var suffix = url.substring(url.indexOf(paramName + "="));
        suffix = suffix.substring(suffix.indexOf("=") + 1);
        suffix = (suffix.indexOf("&") >= 0) ? suffix.substring(suffix.indexOf("&")) : "";
        url = prefix + paramName + "=" + paramValue + suffix;
    
    else
    
    if (url.indexOf("?") < 0)
        url += "?" + paramName + "=" + paramValue;
    else
        url += "&" + paramName + "=" + paramValue;
    
    window.location.href = url + hash;

Llame a la función anterior en su evento onclick.

Toda la solución anterior no tiene en cuenta la posibilidad de la subcadena en el parámetro. Por ejemplo, http://xyz?ca=1&a=2 no seleccionaría el parámetro a sino ca. Aquí hay una función que revisa los parámetros y los verifica.

function setGetParameter(paramName, paramValue)

  var url = window.location.href;
  var hash = location.hash;
  url = url.replace(hash, '');
  if (url.indexOf("?") >= 0)
  
    var params = url.substring(url.indexOf("?") + 1).split("&");
    var paramFound = false;
    params.forEach(function(param, index) 
      var p = param.split("=");
      if (p[0] == paramName) 
        params[index] = paramName + "=" + paramValue;
        paramFound = true;
       
    );
    if (!paramFound) params.push(paramName + "=" + paramValue);
    url = url.substring(0, url.indexOf("?")+1) + params.join("&");
  
  else
    url += "?" + paramName + "=" + paramValue;
  window.location.href = url + hash;

Tuve una situación similar en la que quería reemplazar un parámetro de consulta de URL. Sin embargo, solo tenía un parámetro y simplemente podía reemplazarlo:

window.location.search = '?filter=' + my_filter_value

los location.search La propiedad le permite obtener o establecer la parte de consulta de una URL.

Te mostramos comentarios y puntuaciones

Si estás contento con lo expuesto, tienes la habilidad dejar una noticia acerca de qué le añadirías a este ensayo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *