Загрузка страницы с помощью xhttp

У меня есть маленький вопрос, который я хочу задать.

Прежде всего, я использую JS для загрузки страницы.

function ReLoad() {
      var xhttp = new XMLHttpRequest();
      xhttp.onreadystatechange = function () {
         if (xhttp.readyState == 4 && xhttp.status == 200) {
             document.getElementById("box").innerHTML = xhttp.responseText;
          }
       };
      xhttp.open("GET", "calc/index.html", true);
      xhttp.send();
 }

Теперь моя проблема заключается в том, что я вставляю этот индекс на главную страницу, потому что страница автоматически прокручивается сразу к началу, и я хочу загрузить страницу без этого раздражающего эффекта.

Пожалуйста, кто-нибудь может мне помочь? Спасибо

2 ответа

Решение

Я наконец решил, добавив это в конец кода:

e.preventDefault();
return false;

Вы можете сохранить положение прокрутки;

var currentPosition = window.pageYOffset || document.documentElement.scrollTop;

и повторно примените это:

window.scrollTo(0, currentPosition);

поэтому ваш код станет:

function ReLoad() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function () {
     if (xhttp.readyState == 4 && xhttp.status == 200) {
         var currentPosition = window.pageYOffset || document.documentElement.scrollTop;
         document.getElementById("box").innerHTML = xhttp.responseText;
         window.scrollTo(0, currentPosition);
      }
   };
  xhttp.open("GET", "calc/index.html", true);
  xhttp.send();
}
Другие вопросы по тегам