Programmatically scroll to an Anchor Tag

49,055

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";
Share:
49,055

Related videos on Youtube

Anders
Author by

Anders

Currently freelancing my IT skills while working part-time as an IT consultant for a design firm. SOreadytohelp

Updated on June 01, 2020

Comments

  • Anders
    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.

  • perimosocordiae
    perimosocordiae over 15 years
    Wouldn't this break if you execute it more than once? mysite.com/mypage.htm#label2#label2
  • FastAl
    FastAl over 13 years
    This worked great for me, could still use an anchor. Webbrower control embedded in a winforms app.
  • Imants Volkovs
    Imants Volkovs almost 8 years
    You have mistake in your code - it is document.getElementsByName. Source - stackoverflow.com/questions/7816863/…