событие.сохраняется всегда ложно на странице и на странице, но положение вертикальной прокрутки сохраняется

#javascript #dom-events #bfcache

Вопрос:

Я пытаюсь определить действия вперед/назад, чтобы на основе этого открыть свое боковое меню. Но значение event.persisted всегда равно false и для обоих pagehide , и pageshow но после нажатия кнопки «Назад» окно прокручивается до последней позиции, в которой я покинул страницу. Как я могу это исправить? Мой кэш также включен в devtools, и я использую sessionstorage для сохранения, если на этой странице было открыто боковое меню. Если это не сработает, мне придется использовать sessionStorage для всего, что не так круто.

 window.addEventListener('pagehide', (e) => {
  if(e.persisted) {
    console.log('Saving to cache');
  } else {
    console.log('Not saving to cache');
  }
});

window.addEventListener('pageshow', (e) => {
  if(e.persisted) {
    console.log('Loaded from cache');
  } else {
    console.log('Not loaded from cache');
  }
});