-1

要在 javascript 中创建 cookie,我使用

document.cookie = "cookieName=cookieValue;expires=myDate;path=/"

阅读 cookie:我在网上阅读了很多文章,包括 w3schools,但它们给出了复杂的代码,for(;;){}方法和split. 我不需要这样的代码。我只需要一个小的 javascript 代码。

如果有人可以,请给我一个代码,它将显示带有'cookieName'cookie 值的警报?

4

1 回答 1

1

这可能是我能给你的最简单的方法。

调用它返回库克值的函数:

      /**     
    * Returns cookie.
    * @param {String} sName Main cookie name.
    * @param {String} SubName Sub cookie name.
    * @return {String} Cookie.     
    */


GetCookie: function (sName, SubName) {
        var aCookie = document.cookie.split("; "); // cookies are separated by semicolons
        var CookieVal = null;
        var bHasKeys;
        for (var i = 0; i < aCookie.length; i++) {
            var aCrumb = aCookie[i].split("=");
            bHasKeys = aCrumb.length > 2 ? 1 : 0;
            if (sName == aCrumb[0]) {
                var TempVal = aCookie[i];
                TempVal = TempVal.substring(TempVal.indexOf(sName) + sName.length + 1, TempVal.length);
                if (SubName) {
                    TempArr = TempVal.split("&"); // subcookie seperated by &
                    for (var j = 0; j < TempArr.length; j++) {
                        if (TempArr[j].split("=")[0] == SubName) {
                            CookieVal = TempArr[j].split("=")[1];
                            //while loop is added since /+/g syantax does not work here
                            while (CookieVal.indexOf("+") != -1) CookieVal = CookieVal.replace('+', ' ');
                            CookieVal = unescape(CookieVal);
                            break;
                        }
                    }
                }
                else {
                    if (bHasKeys) CookieVal = TempVal;
                    else {
                        CookieVal = aCrumb[1];
                        //while loop is added since /+/g syantax does not work here
                        while (CookieVal.indexOf("+") != -1) CookieVal = CookieVal.replace('+', ' ');
                        CookieVal = unescape(CookieVal);
                    }
                    break;
                }
            }
        }
        return CookieVal == null ? '' : CookieVal;
    }
于 2013-01-15T11:22:14.053 回答