Восстановление позиции полосы прокрутки <textarea>при перезагрузке страницы - PullRequest
2 голосов
/ 11 марта 2012

После поиска в StackOverflow для восстановления позиции полосы прокрутки с помощью JavaScript я наткнулся на это предложение из https://stackoverflow.com/a/3812235/1101391

    document.getElementById("invoice_incomplete").scrollTop = 200px;

Если я не ошибаюсь, этот код в некоторой степени связан с тем, чего я действительно хочу достичь,Как можно на самом деле сохранить / запомнить / восстановить положение полосы прокрутки на <textarea> после перезагрузки страницы, а не просто установить предпочитаемое положение полосы прокрутки?

Как, например, при вводе некоторых абзацев на <textarea>и вы перезагрузите страницу, полоса прокрутки должна быть на той же позиции, прежде чем перезагрузить страницу.

Редактировать: Завершено с использованием события onunload и невидимого тега <input>,согласно г-ну.Предложение @ ruakh.

Ответы [ 3 ]

3 голосов
/ 11 марта 2012

Вы можете сохранить значение в невидимом текстовом поле, которое не служит никакой другой цели:

<input style="display:none" id="scrollTop" />

Вы можете использовать window.onunload событие (подсказка к комментарию Кэтспа выше) для установки

document.getElementById('scrollTop').value = textarea.scrollTop;

и событие window.onload для установки

textarea.scrollTop = document.getElementById('scrollTop').value;

(Выше предполагается, что textarea является переменной, относящейся к текстовой области).

Когда браузер перезагружает страницу, если он восстанавливает содержимое формы, то он восстанавливает содержимое невидимого текстового поля вместе с содержимым текстовой области.

2 голосов
/ 21 марта 2012

Вы можете сохранить положение полосы прокрутки в хранилище сеансов вашего браузера, а затем запросить ее при обновлении / перезагрузке страницы. Используйте window.sessionStorage.

1 голос
/ 11 марта 2012

Сохраняйте текущее scrollTop в куки или localStorage при каждом изменении прокрутки (т. Е. В onscroll обработчике событий), а затем восстанавливайте его при загрузке страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...