90 votes

Comment remplacer le paramètre url par javascript/jquery ?

J'ai cherché un moyen efficace de le faire mais je n'ai pas pu le trouver, en gros ce dont j'ai besoin, c'est que compte tenu de cette URL par exemple:

 http://localhost/mysite/includes/phpThumb.php?src=http://media2.jupix.co.uk/v3/clients/4/properties/795/IMG_795_1_large.jpg&w=592&aoe=1&q=100

J'aimerais pouvoir changer l'URL dans le src avec une autre valeur en utilisant javascript ou jquery, est-ce possible ?

Merci d'avance.

115voto

Oleg Points 2995

De nos jours, c'est possible avec le JS natif

 var href = new URL('https://google.com?q=cats');
href.searchParams.set('q', 'dogs');
console.log(href.toString()); // https://google.com/?q=dogs

30voto

user2752173 Points 371

Javascript offre désormais une fonctionnalité très utile pour gérer les paramètres d'url : URLSearchParams

 var searchParams = new URLSearchParams(window.location.search);
searchParams.set('src','newSrc')
var newParams = searchParams.toString()

8voto

meliniak Points 74

Voici le code modifié de stenix, ce n'est pas parfait mais il gère les cas où il y a un paramètre dans l'url qui contient le paramètre fourni, comme :

 /search?searchquery=text and 'query' is provided.

Dans ce cas, la valeur du paramètre de requête de recherche est modifiée.

Code:

 function replaceUrlParam(url, paramName, paramValue){
    var pattern = new RegExp('(\\?|\\&)('+paramName+'=).*?(&|$)')
    var newUrl=url
    if(url.search(pattern)>=0){
        newUrl = url.replace(pattern,'$1$2' + paramValue + '$3');
    }
    else{
        newUrl = newUrl + (newUrl.indexOf('?')>0 ? '&' : '?') + paramName + '=' + paramValue
    }
    return newUrl
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X