Добрый день. Уже долго бьюсь с одной проблемой. Суть: есть две страницы, на обеих есть input text. Пользователь попадает на первую страницу, вводит текст в поле, нажимает на кнопку и переходит на вторую страницу, где введенный ранее текст вставляется автоматом в input text. Казалось бы, задача элементарна, но браузеры Chrome и IE (проверял только на них) ведут себя странно. Если открывается вкладка впервые после закрытия браузера, то введенный текст тупо НЕ СОХРАНЯЕТСЯ в localstorage и на новой странице я получаю пустое поле. Но, если снова открыть первую страницу, ввести текст и нажать ту же кнопку, то все сохраняется и работает. И так до тех пор, пока браузер не закроют.
Детали вопроса. При нажатии на кнопку запускается функция, которая сначала записывает значение в localstorage, а затем document.location.href перебрасывает на страницу, то есть порядок действий верный. На новой странице срабатывает onLoad, функция вставляет значение в input text. Но почему все это срабатывает только со ВТОРОГО раза, никак не пойму.
Я не использую clear(), все ключи прописаны верно, все работает, но со второго раза. Что делать, никак не пойму.
Егор Живагин, Александр Севиринов, давайте я вам скину ссылку на проблемную страницу. Что касается того, успевает ли записываться или нет, я пробовал ставить таймаут на 1 секунду после записи - не помогло. Ссылка: (удалил после решения вопроса). Проблема - поиск. В результатах не отображается в input введенный текст в первый раз. В коде страницы с результатами стоит проверка - если ключ равен null, то бросает обратно. И да, проблема сохраняется, если закрыть вкладку, но не всегда. (Сайт доступен не всегда).
Aves, то есть у Вас нет проблем? Мда... я в тупике... Проверял с телефона - там Chrome, та же проблема... В браузере только AdBlock, обычный режим, не инкогнито.
Aves, спасибо за такую наглядную демонстрацию. Вы обновляете только страницу с результатами, а у меня ситуация такая: закрываю браузер, открываю страницу главную (а не результаты), вбиваю запрос, и запрос на второй странице предыдущий... а не тот, который в данный момент. Попробуйте, пожалуйста, пару раз вбить запрос, закрыть браузер, открыть www.(удалено).ru, еще раз вбить запрос. Спасибо.
Aves, мда... проверил на другом ПК - проблема есть... проверил на телефоне - проблема есть ... проверил на другом браузере - проблема есть. Надо попробовать увеличить тайм-аут. Понять не могу, почему у Вас все работает.
Нашел источник проблемы. Дело в том, что я подключаюсь на страницу без www, вписываю запрос, а потом идет перенаправление на www, из-за этого браузер распознает это как два разных домена, ключи не совпадают. Проблема наблюдалась только у меня, так как только я открывал сначала без www страницу, а вам сбросил ссылку с www. Всем спасибо за ответы!
У вас не проблема с сохранением, а проблема с выводом сохраненного при первом переходе.
Наличие данных можно посмотреть в консоли разработчика.
1) ctrl+shift+i
2) Вкладка application, в горизонтальном меню
3) Вкладка Storage, в левом меню
4) Пункт Local Storage в левом меню
И по ключу find у меня все сохраняется.
Вам следует внимательно посмотреть как делается считывание данных
Благодарю за ответ, но только что проверил так, как сказали Вы, у меня записано старое значение, хотя я ввел новое. У Вас, я так понял, сохраняется всегда. А что тогда не то со считыванием данных?
Игорь, Все нормально меняется. Вы вообще где считываете из хранилища. У вас поле остаются данные формы, но это не данные из хранилища. Вам надо при загрузке страницы, прочитать из хранилища данные и заполнить поле