Considérez le code suivant:
<a href="#label2">GoTo Label2</a>
... [content here] ...
<a name="label0"></a>More content
<a name="label1"></a>More content
<a name="label2"></a>More content
<a name="label3"></a>More content
<a name="label4"></a>More content
Existe-t-il un moyen d'émuler en cliquant sur le lien "GoTo Label2" pour faire défiler jusqu'à la région appropriée sur la page à travers le code?
EDIT : 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'ancrage si c'est une solution viable.
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 défilables, etc. afin que le contenu soit visible.
En utilisant javascript:
window.location.href = '#label2';
Si vous devez le faire à partir du serveur/code derrière, vous pouvez simplement émettre ce Javascript et l'enregistrer en tant que script de démarrage pour cette page.
Passer à une ancre côté serveur, par exemple c #.
ClientScript.RegisterStartupScript(this.GetType(), "hash", "location.hash = '#form';", true);
Je suppose que cela fonctionnera:
window.location="<yourCurrentUri>#label2";
La solution
document.getElementById('MyID').scrollIntoView(true);
fonctionne bien dans presque tous les navigateurs, alors que j'ai remarqué que dans certains navigateurs ou dans certains mobiles (comme certaines versions de Blackberry) la fonction "scrollIntoView" n'est pas reconnue, donc je considérerais cette solution (un peu plus laide que la précédente) :
window.location.href = window.location.protocol + "//" + window.location.Host +
window.location.pathname + window.location.search +
"#MyAnchor";
Si l'élément est une balise d'ancrage, vous devriez pouvoir faire:
document.getElementsByName('label2')[0].focus();
vous pouvez simplement ouvrir la nouvelle URL avec le nom ajouté, par exemple http://www.example.com/mypage.htm#label2
En JavaScript,
location.href = location.href + '#label2';
pas de "#" lorsque vous utilisez window.location.hash