На сайте есть статьи и так устроено, что при докручивании скроллом до конца одной статьи, через аякс подгружаются новые. И я сделал через JS при помощи pushState, чтобы при этом на каждой новой статье менялся url на url текущей статьи и записывался в историю браузера. Но при пролистывании в браузере Хром часто выполняется смена юрл как надо, но при нажатии кнопки "назад" браузера не срабатывает событие popstate, а выкидывает на страницу, что была до начала прокручивания. Если открыть страницу в новом окне, то кнопка "назад" может просто не активироваться при смене url. При том бывает , что оно начинает работать как надо, но после перезагрузки опять не работает. То работает , то не работает по непонятной логике. И еще один момент. Если кликнуть мышкой в любом месте окна браузера , то начинает работать и то же самое при клике кнопки вниз или какой-то кнопки с символом на клавиатуре. Но через имитацию клика через $("body").trigger("click") при загрузке добиться такого же результата не получается. Подскажите пожалуйста , а чем может быть причина?
var currentArticle = null;
function articleHistoryOnScroll(){
var articles = document.querySelectorAll("article.article-content");
var articlesLength = articles.length;
for(var i=articlesLength-1; i>=0; --i){
if(articles[i].getBoundingClientRect().top<40){
if(currentArticle != i){
currentArticle = i;
var title = articles[i].getAttribute("data-title");
var url = articles[i].getAttribute("data-url");
window.history.pushState({url:url},title,url);
document.title = title;
}
break;
}
}
}