11521 sujets

JavaScript, DOM et API Web HTML5

Bonsoir à tous
Je voudrais qu'une certaine page se positionne automatiquement en tête de page au rechargement.
Si on a une page affichée et qu'on demande son rechargement, elle se repositionne là où elle était au moment où on a demandé le rechargement, ce qui est effectivement très bien, sauf que pour ce cas particulier j'ai besoin qu'elle revienne en haut.
J'ai essayé
<body onload="window.scrollTo(0,0)">
mais ça ne change rien au comportement de la page au rechargement.
Une meilleur idée?
Modifié par PapyJP (10 Feb 2017 - 18:56)
Bonsoir.

Votre idée m'a l'air d'être bonne... si bonne que je l'ai essayée et... elle fonctionne (même si l'écriture est un peu différente) :
window.addEventListener('load', function()
	{
	window.scrollTo(0,0);
	}, false);
PapyJP a écrit :
Bonsoir à tous
Je voudrais qu'une certaine page se positionne automatiquement en tête de page au rechargement.
Si on a une page affichée et qu'on demande son rechargement, elle se repositionne là où elle était au moment où on a demandé le rechargement, ce qui est effectivement très bien, sauf que pour ce cas particulier j'ai besoin qu'elle revienne en haut.
J'ai essayé
&lt;body onload="window.scrollTo(0,0)"&gt;
mais ça ne change rien au comportement de la page au rechargement.
Une meilleur idée?

L'attribut @id étant un "core attribute", pouvant donc être attributé à tout élément HTML, si tu en place un sur la toute première balise de ton corps de page et utilises ensuite une URL avec une référence # (ex : page_page#mon_id), un appel sur ce lien devrait te repositionner en début de page.
Je ne connais pas bien javascript pour ce type de manip, mais cela doit pouvoir se faire...
Bonsoir,

Je viens justement de travailler la question. Je passe par un gestionnaire d'évènement mais le principe reste le même.

J'avais besoin en cours de traitement de récupérer l'id du parent de la balise sur laquelle travaille le script pour ensuite rediriger le regard du visiteur vers celle-ci.

Ceci me donne satisfaction
let hash = elem.parentNode.id;
location.hash = '#' + hash;


Dans le cas où le parent ne possède possède pas d'id, seul '#' est prit en compte et la barre de scroll vient systématiquement se positionner en tête de page (sans rechargement).

Je pense que dans votre cas ceci devrait convenir:
location.hash = '#';


Tout simplement.

Toutefois je sais qu'en Php, après l'exécution de la fonction location() il faille mettre un exit; afin que la suite du code ne soit pas prise en compte. je ne sais pas s'il en est de même en JS, cette partie de mon script étant toute à la fin.
Greg_Lumiere a écrit :
Toutefois je sais qu'en Php, après l'exécution de la fonction location() il faille mettre un exit; afin que la suite du code ne soit pas prise en compte. je ne sais pas s'il en est de même en JS, cette partie de mon script étant toute à la fin.


C'est surtout parce que location peut être ignoré et certains s'en servant pour interdire l'accès a des pages. Mais ce n'est en rien une obligation.
Modifié par bzh (11 Feb 2017 - 09:35)
Meilleure solution