Il me semble qu'il me manque quelque chose de complètement élémentaire. Ce que j'essaye de réaliser ressemble à un cas assez commun, et ainsi je me demande pourquoi il n'y a pas de manière directe.Forcer la mise à jour de la page et passer à une section #
Le problème est que je voudrais actualiser la page courante de JavaScript et atterrir simultanément sur une section #. Si je fais simplement:
document.location.href = document.location.href + "#section";
tous les navigateurs que j'ai testés, faites défiler jusqu'à la section # (pas de rechargement). Cela a du sens d'une certaine manière. Juste pour être complet, si je
document.location.assign(document.location.href + "#section");
il fait la même chose (il fallait s'y attendre, cela se résume en interne à la même fonction pour sûr). Enfin, l'objet document
semble avoir aussi la fonction document.reload()
qui prend un argument booléen optionnel spécifiant si je veux forcer le rechargement, mais évidemment, il ne permet pas de spécifier la section #. La seule façon que je pouvais trouver (l'utilisation de ces méthodes) est la combinaison suivante:
document.location.assign(document.location.href + "#section");
document.location.reload();
Mais ce n'est pas idéal, car comme vous l'avez probablement deviné, il défile et rechargements qui provoque le navigateur pour faire défiler en fait trois fois à la fin.
Je sais qu'il y a des façons de contourner cela: redirection côté serveur ou en ajoutant un paramètre de chaîne de requête aléatoire unique, mais il semble étrange qu'il n'y a pas de manière simple.
La question évidente est: pourquoi le monde ne la page besoin de recharger? –