Программно выделите тег привязки - PullRequest
43 голосов
/ 05 ноября 2008

Рассмотрим следующий код:

<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

Есть ли способ эмулировать нажатие на ссылку "GoTo Label2", чтобы прокрутить код до нужного региона на странице?

РЕДАКТИРОВАТЬ : приемлемой альтернативой будет прокрутка до элемента с уникальным идентификатором, который уже существует на моей странице. Я бы добавил теги привязки, если это жизнеспособное решение.

Ответы [ 8 ]

73 голосов
/ 05 ноября 2008

Этот JS, как правило, работал хорошо для меня, если вы также указали идентификатор элемента:

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

Это хорошо, поскольку он также позиционирует прокручиваемые элементы div и т. Д., Чтобы содержимое было видимым.

11 голосов
/ 05 ноября 2008

Использование JavaScript:

window.location.href = '#label2';

Если вам нужно сделать это с сервера / кода, вы можете просто запустить этот Javascript и зарегистрировать его в качестве сценария запуска для этой страницы.

3 голосов
/ 03 июня 2014

Переход на якорь со стороны сервера, например, c #.

ClientScript.RegisterStartupScript(this.GetType(), "hash", "location.hash = '#form';", true);
2 голосов
/ 05 ноября 2008

Полагаю, это будет работать:

window.location="<yourCurrentUri>#label2";
1 голос
/ 18 ноября 2010

Раствор

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

хорошо работает почти во всех браузерах, хотя я заметил, что в некоторых браузерах или в некоторых мобильных устройствах (например, в некоторых версиях Blackberry) функция scrollIntoView не распознается, поэтому я бы рассмотрел это решение (немного более уродливое, чем предыдущий):

window.location.href = window.location.protocol + "//" + window.location.host + 
                       window.location.pathname + window.location.search + 
                       "#MyAnchor";
1 голос
/ 05 ноября 2008

Если элемент является тегом привязки, вы должны иметь возможность:

document.getElementsByName('label2')[0].focus();
0 голосов
/ 24 ноября 2008

нет "#" при использовании window.location.hash

0 голосов
/ 05 ноября 2008

вы можете просто открыть новый URL с добавленным именем, например http://www.example.com/mypage.htm#label2

В JavaScript,

location.href = location.href + '#label2';
...