Программно прокрутите до метки привязки
Рассмотрим следующий код:
<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: приемлемой альтернативой может быть прокрутка к элементу с уникальным идентификатором, который уже существует на моей странице. Я бы добавил метки привязки, если это жизнеспособное решение.
Ответы
Ответ 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';