Есть ли в браузере метод JavaScript, который я могу использовать для перехода к якорю на странице, но НЕ обновлять фрагмент URL?
Например,
HTML:
<h1 id = "GettingStarted">Getting Started</h1>
JavaScript:
var anchor = "Getting Started";
window.scrollToHTMLElement(anchor);
Я не хочу обновлять фрагмент URL.
URL до:
http://www.example.com/mypage.html
URL-адрес после:



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать scrollIntoView
document.getElementById('GettingStarted').scrollIntoView();
или
document.getElementById('GettingStarted').scrollIntoView({
behavior: 'smooth'
});
если вы хотите плавную анимацию.
Посмотрите этот рабочий пример для примера.
Как отмечает Джонатан Хайндл, scrollIntoView() может решить вашу проблему. Точнее, у вас будет элемент, к которому вы хотите перейти, и кнопка (или что угодно, только не тег a):
<h1 id = "GettingStarted">Getting Started</h1>
<button type = "button" id = "trigger">Go</button>
Затем простой код javascript:
document.getElementById('trigger').addEventListener('click', function(){
var anchor = document.getElementById('GettingStarted');
anchor.scrollIntoView();
})
Пример результата ниже:
document.getElementById('trigger').addEventListener('click', function(){
var anchor = document.getElementById('GettingStarted');
anchor.scrollIntoView();
})<h1 id = "GettingStarted">Getting Started</h1>
<div style = "min-height: 150vh"></div>
<button type = "button" id = "trigger">Go</button>
вы можете сделать scrollIntoView() на узлах DOM
document.body.scrollIntoView()