Подтвердить что ты не робот

Программно прокрутите до метки привязки

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

<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" для перехода к соответствующей области на странице с помощью кода?

EDIT: приемлемой альтернативой может быть прокрутка к элементу с уникальным идентификатором, который уже существует на моей странице. Я бы добавил метки привязки, если это жизнеспособное решение.

4b9b3361

Ответ 1

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

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

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

Майк.

Ответ 2

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

window.location.href = '#label2';

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

Ответ 3

Перемещение на якорь со стороны сервера, пример - С#.

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

Ответ 4

Я предполагаю, что это сработает:

window.location="<yourCurrentUri>#label2";

Ответ 5

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

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

Ответ 6

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

Ответ 7

Решение

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

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

window.location.href = window.location.protocol + "//" + window.location.host + 
                       window.location.pathname + window.location.search + 
                       "#MyAnchor";

Ответ 8

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

В Javascript

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