Запуск скрипта JavaScript после установки выбранного значения элемента управления

Проблема: после изменения значения в первом выпадающем списке состояние второго не сохраняется при возврате на страницу. Пример нового кода:

<script>
function обновитьСписок() {
  var основнойСписок = document.getElementById('список1');
  var дополнительныйСписок = document.getElementById('список2');
  дополнительныйСписок.disabled = !основнойСписок.value;
}
</script>

Попробуй при загрузке страницы явно вызвать функцию обновления списка, чтобы состояние второго списка сразу установилось. У меня когда-то была похожая проблема, и решение оказалось в том, что событие onchange лучше комбинировать с onload. Это позволило сохранить данные даже при возврате на страницу. Еще можно сохранить выбранное значение в localstorage и при загрузке читать его. Мне кажется, так всё станет стабильнее и понятнее, как минимум за исключением мелких нюансов.

Попробуй при загрузке страницы отлавливать событие pageshow, чтобы точно обновить состояние, даже если оно восстановлено из кеша браузера. У меня такой подход сработал лучше, чем onload, так как pageshow срабатывает даже при возврате на страницу. Это помогает избежать проблем с неактуальным состоянием элементов управления.

Событие onpageshow мне помогло, когда кеш заставлял элементы вести себя странно. Скрипт обновлялся сразу после перехода назад. А какие способы у вас проверены для сохранения состояния при возврате на страницу?

Попробовал вариант с событием DOMContentLoaded, и он мне очень помог в своей задаче. Когда DOM уже готов, сразу же обновляется состояние второго списка, атрибут disabled правильно устанавливается, даже если возвращаешься на страницу из кеша. К тому же, сохранять выбранное значение в sessionStorage можно, если событие иногда пропускает нужные моменты. В общем, такой подход реально решал не только мою проблему, но и помогал избежать лишних ошибок.