Опубликовано: 26.09.2017
Все примеры javascript для данной страницы находятся в файле o3.js . Для правильной работы скриптов необходима также библиотека ir2.js .
Пользователь периодически заходит на страницу, например, телефонного справочника, в котором есть несколько городов. Пользователь постоянно смотрит один и тот же город. Как сделать, чтобы один раз выбранный город не надо было бы выбирать потом заново?
Если пользователь не «зарегистрирован» на сайте, эту информацию, очевидно, нельзя хранить на стороне сервера в профиле пользователя. Значит, остаётся только вариант с куки. Коротко говоря, сохранить настройки в данном случае поможет такой код:
В нём используется только одно знание о нужном элементе – id ("gorod"). Хитрость в том, что в этом коротком коде используются три функции из библиотеки ir2.js : addLoadEvent(), getCookie(), setCookie(). Ещё одна хитрость – мы специально для ответа на этот вопрос изменили библиотечную функцию setCookie() – добавили в неё строку:
Эта строка проверяет, не является ли тип вызвавшего функцию элемента "select-one" (это тип элемента SELECT из примера), и если ответ положительный, сохраняет в куки индекс элемента OPTION, который был выбран пользователем (selectedIndex). При очередной загрузке страницы (именно к этому событию привязана функция myopt() ) мы проверяем куки с именем "gorod" – его значение является номером элемента OPTION, который выбрал в прошлый раз пользователь. Да. А если пользователь ничего в прошлый раз не выбрал, функция getCookie() вернёт значение null . Поэтому мы проверяем, является ли полученное значение id числом, и если нет, присваиваем ему 0 (что соответствует первому элементу OPTION – "Выберите город").
Copyleft © 2017 . www.flashphone.ru