IE не находит значения скрытых полей, созданные с помощью JS
У меня есть страница с несколькими скрытыми полями. Они заполняются значениями с помощью скрипта (JS/jQuery), когда пользователь заканчивает выбор нескольких параметров.
Теперь, если я нажму на ссылку на этой странице, перейду на связанную страницу и затем нажму кнопку "Назад", FF и Safari смогут считывать значения скрытых полей. Таким образом, функция для считывания значений кажется правильной (в любом случае она не сложна).
Но IE (а также Opera, хотя я установил значение history.navigationMode в совместимое) показывает пустые значения, хотя я могу видеть правильные значения в сгенерированном исходном коде IE.
Я также добавил тестовую функцию, чтобы показать мне значения onunload, которые работали нормально. Но нажатие кнопки "назад" IE все еще не "распознает" их.
Я понятия не имею, в чем здесь проблема. Кто-нибудь?
Спасибо!
2 ответа
На самом деле, Firefox даже сохраняет текущие значения при нажатии на обновление, в то время как IE сбрасывает страницу до начальных значений при обновлении. Я думаю, это то же самое. Ни один из стандартов не описывает, что на самом деле должно происходить здесь, поэтому вы не должны полагаться на то, как разные браузеры решат справиться с этим сценарием.
Вы полагаетесь на браузер, автоматически заполняющий правильные поля формы при повторном вводе формы с помощью кнопки "Назад". AFAIK, только FF и Safari делают это по умолчанию. Может ли он быть активирован в IE и других браузерах, я не знаю. Во всяком случае, вы не можете положиться на это в дикой природе.
Возможно, вам придется обойти это с помощью файлов cookie. Вы должны были бы установить значения cookie onchange
или же onunload
и зачитать значения файлов cookie при загрузке вашей страницы.