Je cherche à écrire un morceau de javascript qui ajoutera un paramètre à l'URL actuelle, puis actualisera la page - comment puis-je faire cela?
javascript
jquery
refresh
amateur
la source
la source
Réponses:
cela devrait fonctionner (non testé!)
la source
Plus court que la réponse acceptée, faire de même, mais en restant simple:
Nous n'avons pas à modifier l'URL entière, juste la chaîne de requête, connue sous le nom d'attribut de recherche de location.
Lorsque vous attribuez une valeur à l'attribut de recherche, le point d'interrogation est automatiquement inséré par le navigateur et la page est rechargée.
la source
window.location.search = '?param=42';
La plupart des réponses ici suggèrent qu'il faut ajouter le (s) paramètre (s) à l'URL, quelque chose comme l'extrait de code suivant ou une variante similaire:
Cela fonctionnera assez bien pour la majorité des cas.
toutefois
Ce n'est pas la bonne façon d'ajouter un paramètre à une URL à mon avis.
Étant donné que l'approche suggérée ne teste pas si le paramètre est déjà défini dans l'URL, si ce n'est pas prudent, on peut se retrouver avec une URL très longue avec le même paramètre répété plusieurs fois. c'est à dire:
c'est à ce stade que les problèmes commencent. L'approche suggérée pourrait créer et créera une URL très longue après plusieurs actualisations de page, rendant ainsi l'URL invalide. Suivez ce lien pour plus d'informations sur les URL longues. Quelle est la longueur maximale d'une URL dans différents navigateurs?
Voici mon approche suggérée:
Avec cette fonction, il suffit de faire ce qui suit:
la source
if(window.location.search.indexOf('¶m=') == -1) {window.location.search += '¶m=1';}
indexOf
pourrait introduire une complexité inutile au code.la source
Plus de version de compatibilité
la source
Veuillez vérifier le code ci-dessous:
la source
Une petite correction de bogue pour la réponse réfléchie de @ yeyo ci-dessus.
Changement:
var parameters = parser.search.split(/\?|&/);
À:
var parameters = parser.search.split(/\?|&/);
la source
Essaye ça
la source
Aussi:
Une seule doublure de réponse Shlomi utilisable dans les bookmarklets
la source