web-dev-qa-db-fra.com

Comment actualiser une page avec jQuery en passant un paramètre à une URL

J'actualise ma page avec jQuery:

location.reload();

Cela fonctionne très bien, mais je souhaite actualiser la même page en transmettant un paramètre à l'URL. 

Comment puis-je faire cela en utilisant jQuery?

Ex:

Si mon URL est www.myweb.com, je veux actualiser ceci en passant un paramètre comme celui-ci

  www.myweb.com?single

Je vous remercie

38
KillerFish

Vous devriez pouvoir accomplir cela en utilisant location.href

if(window.location.hostname == "www.myweb.com"){
   window.location.href = window.location.href + "?single";
}
44
Mark Coleman

Je voudrais utiliser REGEX avec .replace comme ceci:

window.location.href = window.location.href.replace( /[\?#].*|$/, "?single" );
46
Rui Seixas Monteiro

Vous pouvez utiliser Javascript URLSearchParams .

var url = new URL(window.location.href);
url.searchParams.set('single','');
window.location.href = url.href;
6
Fábio N Lima

si window.location.hash est vide, vous ne pouvez pas affecter à location.href une nouvelle valeur sans utiliser une fonction correcte (au moins testée en chrome).

essayez le window.location.replace:

if (!window.location.hash) 
    {
        window.location.replace(window.location.href + "?single")
    } 
3
Eyal Ch

Vous auriez simplement pu faire:

var varAppend = "?single";
window.location.href = window.location.href.replace(".com",".com" + varAppend);

Contrairement aux autres réponses fournies, il n’ya pas de vérification conditionnelle inutile. Si vous concevez votre projet correctement, vous laisserez l'interface prendre la décision et appeler cette déclaration chaque fois qu'un événement a été déclenché. 

Puisqu'il n'y aura qu'un seul ".com" dans votre URL, il ne fera que remplacer .com par .com?single. Je viens d’ajouter varAppend au cas où vous voudriez faciliter la modification future du code avec différents types de variables d’URL.

Une autre remarque: Le .replace fonctionne en ajoutant à href puisque href renvoie une chaîne contenant les informations complètes sur l'adresse URL.

2
sksallaj

Cliquez sur ces liens pour voir ces solutions plus flexibles et robustes. Ils sont des réponses à une question similaire:

Celles-ci vous permettent de définir le paramètre par programmation et, contrairement aux autres hacks suggérés pour cette question, ne seront pas interrompues pour les URL contenant déjà un paramètre, ou si quelque chose d'autre ne correspond pas exactement à ce que vous pensiez.

2
Michael Scheper

La concision compte: je préfère window.location = "?single"; ou window.location += "?single";

2
Ori
var singleText = "single";
var s = window.location.search;

if (s.indexOf(singleText) == -1) {
    window.location.href += (s.substring(0,1) == "?") ? "&" : "?" + singleText;
}
1
Kris Ivanov

J'utilise Jquery Load pour gérer cela, fonctionne très bien pour moi . Consultez mon code de mon projet. J'ai besoin d'actualiser avec des arguments pour mettre une variable Javascript dans php

if (isset($_GET['language'])){
    $language = $_GET['language'];
}else{
    echo '<script>';    
    echo '  var userLang = navigator.language || navigator.userLanguage;';
    echo '  if(userLang.search("zh") != -1) {';
    echo '      var language = "chn";';
    echo '  }else{';
    echo '      var language = "eng";';
    echo '  }';
    echo '$("html").load("index.php","language=" + language);';
    echo '</script>';
    die;
}
0
Berry van Zanten