Почему по нажатию кнопки "отмена" в confirm не осуществляется переход по ссылке, которая в скрипте, но переходит на страницу "up.html"?

index.html:

let button_1 = document.getElementById('bu1');
button_1.onclick = function() {
  let c1 = confirm('Вы хотите перейти на другую страницу?');

  if (c1 == false) {
    alert(false)
    document.location.href = "index.html";
  }

  if (c1 === true)
    alert('true')
};
<header>
  <h1 class="avtovokzal">АВТОВОКЗАЛ</h1>
</header>
<div class="goto">
  <a href="up.html" id="bu1">
    <div class="but">
      <p class="b1">Кнопка 1</p>
    </div>
  </a>
  <a href="down.html" id="bu2">
    <div class="but">
      <p class="b2">Кнопка 2</p>
    </div>
  </a>
</div>


Ответы (1 шт):

Автор решения: Locker

Метод preventDefaul() интерфейса Event сообщает User agent, что если событие не обрабатывается явно, его действие по умолчанию не должно выполняться так, как обычно.

В вашем случае, дефолтное событие это перейти на страницу которое указано в виде ссылки: <a href="...."/>

Детали за ссылкой

button_1.onclick = function(e) {
e.preventDefault()
  let c1 = confirm('Вы хотите перейти на другую страницу?');

  if (c1 == false) {
    alert(false)
    document.location.href = "index.html";
  }

  if (c1 === true)
    alert('true')
};

→ Ссылка