Программно выделите тег привязки
-
06-07-2019 - |
Вопрос
Рассмотрим следующий код:
<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 " ссылка для прокрутки до соответствующего региона на странице с помощью кода?
РЕДАКТИРОВАТЬ : приемлемой альтернативой будет прокрутка до элемента с уникальным идентификатором, который уже существует на моей странице. Я бы добавил теги привязки, если это жизнеспособное решение.
Решение
Этот JS, как правило, работал хорошо для меня, если вы также указали идентификатор элемента:
document.getElementById('MyID').scrollIntoView(true);
Это хорошо, поскольку он также размещает прокручиваемые элементы div и т. д., чтобы содержимое было видимым.
Другие советы
Использование JavaScript:
window.location.href = '#label2';
Если вам нужно сделать это с сервера или кода, вы можете просто запустить этот Javascript и зарегистрировать его в качестве сценария запуска для этой страницы.
При переходе на якорь со стороны сервера, примером является c #.
ClientScript.RegisterStartupScript(this.GetType(), "hash", "location.hash = '#form';", true);
Полагаю, это сработает.
window.location="<yourCurrentUri>#label2";
Решение
document.getElementById('MyID').scrollIntoView(true);
хорошо работает почти во всех браузерах, хотя я заметил, что в некоторых браузерах или на некоторых мобильных устройствах (например, в некоторых версиях Blackberry) " scrollIntoView " функция не распознана, поэтому я хотел бы рассмотреть это решение (немного страшнее предыдущего):
window.location.href = window.location.protocol + "//" + window.location.host +
window.location.pathname + window.location.search +
"#MyAnchor";
Если элемент является тегом привязки, вы должны быть в состоянии сделать:
document.getElementsByName('label2')[0].focus();
нет " # " когда вы используете window.location.hash
вы можете просто открыть новый URL с добавленным именем, например http://www.example.com/mypage.htm#label2
В JavaScript
location.href = location.href + '#label2';