Я думаю, вам нужно точно определить, что вы подразумеваете под «переходом на новый URL»;для меня это может означать либо перезагрузку страницы с новым URL, либо просто изменение URL в адресной строке без перезагрузки страницы.
history.pushState()
действительно меняет URL, но это не вызывает браузервыполнить полную перезагрузку страницы, как обычно, когда вы нажимаете на ссылку.Так работают «одностраничные приложения» - они перехватывают <a>
клики и используют history.pushState()
для предотвращения перезагрузки страницы.
history.pushState (...) только изменяет историю ине переходит на новый URL.
Здесь я думаю, что "и не переходит на новый URL" неправильно - это так, за исключением того, что страница не перезагружается.