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 при загрузке вашей страницы.

Другие вопросы по тегам