Вопрос:
У меня есть простой элемент ввода textarea:
<textarea name=»comment» id=»comment»></textarea>
Это на странице, на которой пользователь будет добавлять элементы, поэтому он будет часто перемещаться и удаляться от него. Если пользователь набирает материал в элементе textarea и перемещается, им придется перепечатать все.
Как я могу сделать так, чтобы все, что было напечатано в элементе textarea, будет храниться, даже если пользователь перемещается в сторону от страницы? Я не хочу, чтобы там была кнопка “Сохранить”, которая затем хранит ее в $ _SESSION или SQL, я надеюсь, что там есть метод, который сохраняет текст там, не переходя к новой странице. Чтобы уточнить, сеансы A-OK, но я просто не хочу, чтобы пользователю приходилось нажимать что-либо, чтобы сохранить его, я бы хотел его автоматически.
Лучший ответ:Содержание
Решение
Использовать localStorage
window.onbeforeunload = function () { localStorage.setItem(‘comment-save’, document.getElementById(‘commment’).value); }
Затем, когда страница загружается
window.onload = function () { document.getElementById(‘comment’).value = localStorage.getItem(‘comment-save’); }
объяснение
window.onbeforeunload запускает код до закрытия страницы. Вы всегда можете изменить событие, например
document.getElementById(‘comment’).input
должен сохранять значение каждый раз, когда пользователь что-то набирает. Следующая строка сохранит значение textarea в localStorage называется comment-save
Блок кода будет работать при загрузке страницы. Он найдет #comment поле #comment и установит его значение в сохраненный комментарий.
Одна последняя проблема
Если пользователь отправляет комментарий, вы, вероятно, больше не хотите его хранить. В своем коде отправки добавьте
localStorage.removeItem(‘comment-save’);
Зачем
Зачем использовать это через PHP? PHP является избыточным, чтобы сохранить данные на стороне клиента. Он также тратит ресурсы на стороне сервера.