После множества проб и ошибок мне удалось создать несколько раскрывающихся списков, чтобы сохранить значение выбора пользователя в файле cookie и предварительно выбрать его из файлов cookie ...
... но не в IE. Мои функции установки файлов cookie достаточно просты. У меня есть два поля выбора с именами и идентификаторами «Sol» и «Pro». Я вызываю перечисленные ниже функции, когда соответствующее поле выбора onChanges и (в идеале) solCookie и proCookie создаются с одним целым числом, представляющим индекс всего, что выбрал пользователь.
function setSol() {
document.cookie= "solCookie=" + document.getElementById('sol').selectedIndex;
}
function setPro() {
document.cookie= "proCookie=" + document.getElementById('pro').selectedIndex;
}
Chrome 13 доволен этим, Firefox 5 хочет играть хорошо, но нет! IE9 не будет иметь ничего из этого!
![ie hates cookies](https://i.stack.imgur.com/MM681.png)
http://imgur.com/a/yOrGd (Альбом других примеров браузера для файлов cookie)
^ Это проблема. ^
Похоже, что IE сохраняет всю строку кода в cookie. Как я могу это исправить? Имейте в виду, я довольно новичок в JavaScript и кодировании в целом. Очень ценится!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Рабочий процесс, более подробно:
Блоки выбора (решения) и выбора (протока) в конечном итоге являются фильтрами. Различные продукты подразделяются на решения, родственные отношениям между городами. Вот поля выбора.
<select name="sol" id="sol" size="1" style="margin-bottom: 0px;" onchange="setSol();populate(this)">
<option value="Choose a Solution">Choose a solution...</option>
<option value="Option One">Option One</option>
<option value="Option Two">Option Two</option>
<option value="Option Three">Option Three</option>
</select>
<select name="pro" id="pro" size="1" style="width: 323px; margin-bottom: 0px;" onchange="setPro();javascript:_SFSUBMIT_">
</select>
Как вы можете видеть, когда пользователь выбирает параметр в «sol», он вызывает setSol (), который устанавливает cookie «solCookie», а затем вызывает populate () (не указан), который заполняет «pro» другими опции. Как только пользователь выбирает параметр в этом, proCookie сохраняется через setPro (), форма отправляется, и страница обновляется.
Вот моя функция выбора файлов cookie для поиска / выбора. После обновления страницы эта функция вместе с практически идентичной функцией getSol () запускается onLoad, заполняя поля выбора тем, что было в файле cookie.
function getPro(cookie_name) {
if (document.cookie); {
index = document.cookie.indexOf("proCookie");
if (index != -1) {
namestart = (document.cookie.indexOf("=", index) + 1);
nameend = document.cookie.indexOf(";", index);
if (nameend == -1) {
nameend = document.cookie.length;
}
var selPro = document.cookie.substring(namestart,nameend);
selPro = parseInt(selPro);
}
document.getElementById('pro').options[selPro].selected = true;
}
}