0

私はクッキーでいくつかのことをしようとしています。今のところ、Cookie を読み取って、alert(value) を使用してポップアップ ボックスに値を表示しようとしています。私がフォローしているチュートリアルは次のとおりです。 http://www.w3schools.com/js/tryit.asp?filename=tryjs_cookie_username

これをWebアプリケーションに実装すると、どういうわけかこれが機能しません。Cookieは作成されますが、読み取り部分がなぜか機能しません。Web Developer Toolbar を使用すると、「language」という名前の Cookie があることがわかります。

これは、私の Index.aspx のスクリプト ブロックです。

function createCookie() {
    var box = document.getElementById("language");
    var value = box.options[box.selectedIndex].value;
    var name = "language";
    var days = 1;
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    } else var expires = "";
    document.cookie = name + "=" + value + expires + ";path=/;";
    document.cookie = 'language=en; expires=Thu, 2 Aug 2012 20:47:11 UTC;                                   path=/'
    window.location = 'http://localhost:57688';
}

function readLanguageCookie() {
    var language = getCookie("language");
    if (language != null && language != "") {
        alert("Language is: " + language);
    } else {
        language = "en";
        if (language != null && language != "") {
            setCookie("language", language, 365);
        }
    }
}

function getCookie(c_name) {
    var i, x, y, ARRcookies = document.cookie.split(";");
    for (i = 0; i < ARRcookies.length; i++) {
        x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
        y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
        x = x.replace(/^\s+|\s+$/g, "");
        if (x == c_name) {
            return unescape(y);
        }
    }
}

そして、これがメソッドを実行しようとする方法です

<form method="get" action="http://localhost:57688">
<label for="language">hjhj</label>
<select id="language" onchange="readLanguageCookie()">
<option value="en">English</option>
<option value="nl">Dutch</option>
</select>
</form>

クッキーの詳細:

Name    language
Value   en
Host    localhost
Path    /
Secure  No
Expires Thu, 02 Aug 2012 20:47:11 GMT

ここで何が間違っていますか?

4

1 に答える 1

-1

理由は日付がハードコードされている可能性がありますか?:

    document.cookie = 'language=en; expires=Thu, 2 Aug 2012 20:47:11 UTC;
于 2012-06-18T12:13:06.630 に答える