web-dev-qa-db-fra.com

Javascript recharge la page avec une valeur de hachage

J'essaie d'actualiser la page avec cette déclaration dans un fichier JavaScript externe après certains processus.

window.location.href = window.location.href

Il recharge parfaitement la page, mais je veux faire défiler jusqu’à l’emplacement spécifique après avoir rechargé… .. Donc, je mets ceci sur la page.

<a name="uploadImgSection"></a>

Et changez le javascript en

window.location.href = window.location.href + "#mypara";

Ce code ne recharge pas/actualise la page non plus

window.location.hash = "#uploadImgSection";
window.location.href = window.location.href;

Lorsque je le fais, cela ne recharge pas du tout la page. Est-il possible de recharger la page avec la position de la barre de défilement?

70
Jonas T
window.location.href += "#mypara";
location.reload();

Ajoutez d'abord le hachage, puis rechargez la page. Le hachage restera là et la page sera rechargée.

Testé, fonctionne.


ps: Si un hachage existe déjà dans l'URL, vous pouvez le changer directement via location.hash au lieu de .href.

133

Je voulais mettre à jour cette question parce que j'ai découvert que l'utilisation de window.location.href += "#mypara" continuera à ajouter le paramètre à l'URL même s'il existe. J'ai trouvé le meilleur moyen est d'utiliser

window.location.hash = "#mypara"
location.reload();
29
ug_

C'est vraiment un vieux post, je voudrais toujours essayer de répondre avec la bonne combinaison de réponses.

  1. location.reload() et location.reload(true) fonctionnent comme F5 sur le navigateur. Ceci affichera toutes les données du formulaire sur le serveur si le chargement avait été effectué auparavant.
  2. location.href n’actualisera pas la page tant qu’une modification d’URL n’est pas reconnue par le navigateur. Le changement de hash (#nomam) ne donne pas droit à un changement d'URL. Par conséquent, le simple fait de faire location.href+="#paramname" ne fonctionnera pas.

Donc, location.href+="?anything#paramname" devrait recharger la page en tant que nouvelle demande car ?anything est modifié dans l'URL.

22
JayB
var loc = location.hash;
location.hash = " ";
location.hash = loc;
0
Pandimanikandan A