經過大量試驗和錯誤之後,我設法使用多個下拉框將用戶選擇的值保存到cookie中,有用戶從cookies中選擇預選...Javascript:Cookies,Select Boxes和'document.getElementById'在Internet Explorer中不起作用
...但不在IE中。我的cookie設置功能非常簡單。我有兩個名稱和ID爲'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將沒有它!
http://imgur.com/a/yOrGd(專輯爲Cookie之外的瀏覽器實例)
^這就是問題所在。^
因此,IE似乎將整行代碼保存到cookie中。我怎樣才能解決這個問題?請記住,我在JavaScript和編碼方面相當新。非常感激!
~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
工作流程,更深入: sol(ution)和pro(風管)選擇框最終是過濾器。各種產品被歸類爲解決方案,類似於國家對城市的關係。這裏是選擇框。
<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>
正如你所看到的,一旦用戶選擇在「索爾」的選項,它會調用setSol(),它集餅乾「solCookie」,然後通話填充()(未上市),填補「親'與其他選項。一旦用戶選擇了一個選項,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;
}
}
我的IE是做預期 –
+1對問題的細節...好.... – ManseUK
這似乎是顯而易見的,但顯而易見的事情都忘得:你檢查是否啓用了Cookie? – user2428118