1

これが私の状況です。自宅の国を選択するドロップダウンがあります。

クッキーがない場合、クッキーのデフォルトを「米国」に設定し、ユーザーが新しいタブでリンクを開いてチェックアウトページに移動し、他の国をフィルタリングして、選択した国のみをドロップダウン選択で表示すると、すべて問題ありませんが、最初のタブでは2 番目のタブで国を DE に変更します Cookie は DE ですが、国はまだ US です。

2 つのオプションがあります。

<select id="country">
    <option>Select Country</option>
    <option value="US">Select Country</option>
</select>

私がやりたいことは

function readCookie(k){return(document.cookie.match('(^|; )'+k+'=([^;]*)')||0)[2]}  

または、ここで説明されているような Cookie を読み取るその他の関数

document.getElementById('country').onchange = function () { 
    this.options.length = 0;
    this.options[1] = new Option(readCookie('country'),readCookie('country'));
    this.options[1].setAttribute("selected","selected");
}

それらは undefined を返しますが、プロファイルで調べると Cookie があります。基本的に、Cookieに基づいてオプションを更新したいだけです

私がする時

document.getElementById('country').onchange = function () { 

    alert(readCookie('country'); //returns undefined
}
4

2 に答える 2

0

Cookie を作成するときにパスを確認しましたか? パスが / であることを確認してください。2 つの Cookie を忘れて作成したり、古い Cookie を削除できないことがあります。

于 2012-11-17T11:54:03.483 に答える
0

代わりに localstorage に切り替えました。

于 2012-11-18T15:40:23.227 に答える