2016-03-12 3 views
0

У меня есть маленький вопрос, который я хочу задать.Загрузка страницы с 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(); 
} 

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

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

+0

«страница автоматически прокручивается до начала». Как вы запускаете этот XHR запрос? Возможно ли это с помощью '? –

+0

OK. Причина, по которой я спрашиваю, заключается в том, что вставка нового контента в DOM сама по себе не приводит к тому, что окно прокручивается вверх. 'href =" # "- общий метод, который * изменяет положение прокрутки - если вы этого не делаете, вы должны делать что-то еще, что не показано в вашем предыдущем коде, который изменяет положение прокрутки. Вы можете решить эту проблему, сохранив текущую позицию прокрутки и вручную ее отредактировать, как это предлагается ниже, но это будет лишней дополнительной работой и на самом деле не устранит основную проблему. –

ответ

0

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

e.preventDefault(); 
return false; 
0

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

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

Я попробовал, но все равно иду к вершине. – Onelio