history.pushState не удаляет хэш - PullRequest
       32

history.pushState не удаляет хэш

0 голосов
/ 21 сентября 2018

Я проверяю URL для хэша.Если хеш не существует, я устанавливаю начальный хеш (маршрут по умолчанию).

if (!window.location.hash) {
  console.log("Empty hash")
  window.location.hash = '#home'
}

Затем я проверяю изменения хеша:

window.addEventListener('hashchange', () => {
    switch (window.location.hash) {
      case '#home':
        document.getElementById('app').innerHTML = layout + WelcomeHomePage();
        window.history.pushState('', '', 'home');
        break;
      case '#login':
        document.getElementById('app').innerHTML = layout + loginPage;
        window.history.pushState('', '', 'login');
        break;
      default:
        break;
    }
  })

Итак, если я нажимаю «логин»URL-адрес в браузере изменяется с /home на /login, что я и хочу, но когда я console.log полный URL-адрес, я получаю что-то вроде http://localhost:3000/home#login, когда URL-адрес в браузере показывает /login,Когда я нажимаю кнопку «Назад» в браузере, URL-адрес в браузере меняется на /home#login.

Как правильно удалить хэш из URL-адреса при маршрутизации?

...