Рассмотрим следующий код:
<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» для перехода к соответствующему региону на странице с помощью кода?
РЕДАКТИРОВАТЬ: приемлемой альтернативой было бы прокрутить до элемента с уникальным идентификатором, который уже существует на моей странице. Я бы добавил теги привязки, если это жизнеспособное решение.





Полагаю, это сработает:
window.location = "<yourCurrentUri>#label2";
вы можете просто открыть новый URL-адрес с добавленным именем, например http://www.example.com/mypage.htm#label2
В JavaScript
location.href = location.href + '#label2';
Разве это не сломается, если вы выполните его более одного раза? mysite.com/mypage.htm#label2#label2
Используя javascript:
window.location.href = '#label2';
Если вам нужно сделать это с сервера / кода, вы можете просто выпустить этот Javascript и зарегистрировать его как сценарий запуска для этой страницы.
Это отлично сработало для меня, я все еще мог использовать якорь. Элемент управления веб-браузера, встроенный в приложение winforms.
Этот JS обычно хорошо работает для меня, если вы также добавляете идентификатор к элементу:
document.getElementById('MyID').scrollIntoView(true);
Это хорошо, так как он также будет позиционировать прокручиваемые div и т. д., Чтобы контент был виден.
Если элемент является тегом привязки, вы должны уметь:
document.getElementsByName('label2')[0].focus();
У вас есть ошибка в коде - это document.getElementsByName. Источник - stackoverflow.com/questions/7816863/…
нет "#" при использовании window.location.hash
Решение
document.getElementById('MyID').scrollIntoView(true);
хорошо работает почти во всех браузерах, хотя я заметил, что в некоторых браузерах или на некоторых мобильных устройствах (например, в некоторых версиях Blackberry) функция scrollIntoView не распознается, поэтому я бы счел это решение (немного уродливее предыдущего) :
window.location.href = window.location.protocol + "//" + window.location.host +
window.location.pathname + window.location.search +
"#MyAnchor";
Переход к привязке со стороны сервера, примером является C#.
ClientScript.RegisterStartupScript(this.GetType(), "hash", "location.hash = '#form';", true);
Аналогичный вопрос stackoverflow.com/questions/6666038/…