44 votes

Faire défiler de manière programmée jusqu'à une balise d'ancre

Considérez le code suivant :

Aller à Label2
... [contenu ici] ...
Plus de contenu
Plus de contenu
Plus de contenu
Plus de contenu
Plus de contenu

Y a-t-il un moyen d'émuler le clic sur le lien "Aller à Label2" pour faire défiler la page jusqu'à la région appropriée à travers le code ?

MODIFIER : Une alternative acceptable serait de faire défiler jusqu'à un élément avec un identifiant unique, qui existe déjà sur ma page. J'ajouterais les balises d'ancre si c'est une solution viable.

0 votes

74voto

MikeeMike Points 924

Ce JS a généralement bien fonctionné pour moi si vous mettez également un ID sur l'élément :

document.getElementById('MyID').scrollIntoView(true);

C'est bien car cela positionnera également les divs scrollables, etc. pour que le contenu soit visible.

11voto

CubanX Points 3603

En utilisant JavaScript :

window.location.href = '#label2';

Si vous devez le faire à partir du serveur/code-behind, vous pouvez simplement émettre ce JavaScript et le enregistrer en tant que script de démarrage pour cette page.

0 votes

Cela a bien fonctionné pour moi, pourrait toujours utiliser une ancre. Contrôle du navigateur Web intégré dans une application WinForms.

3voto

Gareth Williams Points 127

Passage à une ancre du côté serveur, l'exemple est c#.

ClientScript.RegisterStartupScript(this.GetType(), "hash", "location.hash = '#form';", true);

2voto

mkoeller Points 3101

Je suppose que cela fonctionnera :

window.location="#label2";

1voto

tvanfosson Points 268301

Si l'élément est une balise d'ancre, vous devriez pouvoir faire :

document.getElementsByName('label2')[0].focus();

0 votes

Vous avez une erreur dans votre code - c'est document.getElementsByName. Source - stackoverflow.com/questions/7816863/…

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X