使用 xhttp 加载页面

Loading a page with 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();
 }

现在,我的问题是当我将此索引插入主页时,因为页面会立即自动滚动到开头,我希望加载页面时不会出现这种烦人的效果。

拜托,有人可以帮助我吗? 谢谢

您可以存储滚动位置;

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();
}

我终于解决了,在代码末尾添加了这个:

e.preventDefault();
return false;