Я дергаю за волосы здесь.Chrome имеет раздражающую привычку запоминать положение прокрутки страницы при загрузке ранее просмотренной страницы.Это очень нежелательно для моего веб-приложения, но что бы я ни пытался, я не могу помешать Chrome сделать это.Моя среда тестирования находится на виртуальной коробке Linux Ubuntu с Chrome.Я разработал один хак, который ждет около 600 мс после загрузки страницы, прежде чем вручную устанавливать положение прокрутки в верхней части страницы, но это заставляет время загрузки страницы казаться на 600 мс больше, чем должно быть, что отстой.Вот мой взлом, который работает
// hide the whole document, then show it after delay
$('#iContainer').addClass('cDispHide')
setTimeout(function(){
window.scrollTo(0, 0);
$('#iContainer').removeClass('cDispHide');
}, 600 );
После некоторых исследований в Интернете, вот все, что я попробовал
Я поместил это в теги сценария прямо перед включением jQuery
if ('scrollRestoration' in history) {
history.scrollRestoration = 'manual';
}
В chrome предполагается отключить это поведение памяти прокрутки, но это не оказывает никакого влияния.Может быть, я ставлю это не в том месте?
поместите это в unload:
window.addEventListener('unload', function(e){
document.body.style.display = 'none';
});
, который должен отключить это поведение, но это не так.Я поместил этот код в функцию jquery $ (window) .load (), и он не имеет никакого эффекта.Я также попытался установить window.scrollTo (0, 0) при выгрузке, но без эффекта
Я пытался поместить
document.location = "#";
внутри $ (window) .load () и $ (document) .ready (), который должен сообщатьбраузер, чтобы загрузить в верхней части страницы, но это не имеет никакого эффекта, несмотря на размещение «#» в моей адресной строке
Я пытался вручную установить window.scrollTo (0, 0), прежде чем делать любой ajax, который уводит меня с текущей страницы, что по-прежнему не влияет на возвращение на страницу.По сути, страница прокручивается до верхней части страницы, выполняет ajax, покидает страницу, и когда я возвращаюсь на страницу, меня отправляют в середину страницы в качестве моей запомненной позиции прокрутки!?!?!?как это имеет смысл.Это похоже на то, что мои настройки window.scrollTo () не влияют на то, что Chrome запоминает в качестве моей позиции прокрутки.
Я даже заметил, что если я прокручиваю мышью до верхней части страницы,затем покиньте страницу, затем вернитесь к ней, и она по какой-то причине ведет меня к какой-то точке в середине страницы.Он не запоминает мою прокрутку к вершине, это как запоминание какой-то предыдущей позиции прокрутки с давних времен.В моем коде нет ничего, что могло бы сделать это.
Любая помощь с этим будет принята с благодарностью.Спасибо