Programmatically scroll to an Anchor Tag
Solution 1
This JS has generally worked well for me if you also put an ID on the element:
document.getElementById('MyID').scrollIntoView(true);
This is good as it will also position scrollable divs etc so that the content is visible.
Solution 2
Using javascript:
window.location.href = '#label2';
If you need to do it from the server/code behind, you can just emit this Javascript and register it as a startup script for that page.
Solution 3
Moving to a anchor from server side, example is c#.
ClientScript.RegisterStartupScript(this.GetType(), "hash", "location.hash = '#form';", true);
Solution 4
I suppose this will work:
window.location="<yourCurrentUri>#label2";
Solution 5
The solution
document.getElementById('MyID').scrollIntoView(true);
works well in almost all browsers, whereas I've noticed that in some browsers or in some mobile (such as some Blackberry versions) "scrollIntoView" function is not recognized, so I would consider this solution (a bit uglier than the previous one):
window.location.href = window.location.protocol + "//" + window.location.host +
window.location.pathname + window.location.search +
"#MyAnchor";
Related videos on Youtube
Anders
Currently freelancing my IT skills while working part-time as an IT consultant for a design firm. SOreadytohelp
Updated on June 01, 2020Comments
-
Anders almost 4 years
Consider the following code:
<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
Is there a way to emulate clicking on the "GoTo Label2" link to scroll to the appropriate region on the page through code?
EDIT: An acceptable alternative would be to scroll to an element with a unique-id, which already exists on my page. I would be adding the anchor tags if this is a viable solution.
-
Michael Freidgeim over 8 yearsSimilar question stackoverflow.com/questions/6666038/…
-
-
perimosocordiae over 15 yearsWouldn't this break if you execute it more than once? mysite.com/mypage.htm#label2#label2
-
FastAl over 13 yearsThis worked great for me, could still use an anchor. Webbrower control embedded in a winforms app.
-
Imants Volkovs almost 8 yearsYou have mistake in your code - it is document.getElementsByName. Source - stackoverflow.com/questions/7816863/…