Изменить URL с помощью XHR - PullRequest
       0

Изменить URL с помощью XHR

1 голос
/ 12 января 2020

Как в вопросе, как заставить приведенный ниже код изменить URL в вашем браузере после выполнения запроса и после загрузки содержимого страницы? Я не знаю, как это сделать сам, я пытался сделать это в течение нескольких дней.

Если возможно, как заставить JS скрипты, загруженные с новой страницы (после запроса), работать ( innerHTML не интерпретируется в результате написания сценариев).

document.addEventListener('click', function(event) {
  if (event.target.tagName !== "A" || !event.target.href) return;
    document.body.style.opacity = 0;
  event.preventDefault();
  document.body.addEventListener("transitionend", function() {
  var res = new XMLHttpRequest();
  res.addEventListener("load", function() {
       if (res.status != 200) {
 console.log(`Error ${res.status}: ${res.statusText}`);
  } else { 
    document.querySelector('html').innerHTML =
      this.response;
  }
  });
  res.open("GET", event.target.href);
  res.send();
});
});

Если требуется дополнительное разъяснение, пожалуйста, прокомментируйте ниже.

1 Ответ

0 голосов
/ 13 января 2020

На самом деле, вы можете изменить всю страницу в обратном вызове AJAX. Подготовьте внутренний код для ответа с DTD, включенным в документ, и запутайте все конечные теги сценария, напр. <\/script>. Затем в обратном вызове сделайте следующее:

else { 
    document.write(res.responseText);
}

Вот и все. Но это противоречит всем стандартам и передовым методам, не используйте его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...