使用javascript解析cookie字符串并使用数据来输入html

时间:2015-08-07 22:30:05

标签: javascript html cookies

这是我的情况。我有一个项目,我的后端.Net团队将通过我一个cookie,如:

COOKIE=ID=1&NAME=Foo&AGE=30&EMPLOYED=Y&ACTIVE=N

然后我需要解析这些数据,并根据数据为我想要拉入我的页面的HTML设置条件。基本上用HTML填充空div,这些div将映射到字符串值声明的内容。

有没有人曾经做过这样的事情?我的第一个想法是拆分字符串,创建一个数组,然后以某种方式解析值。然后将它们映射到各个唯一的HTML文件。

我感谢任何帮助!我以前曾经使用过cookie,但从来没有像这样。

1 个答案:

答案 0 :(得分:0)

我的建议是你在后端代码而不是前端找出正确的html。

我根据您提供的测试值创建了一个本地cookie。 下面的代码设置一个本地cookie并获取它,分割键值对并显示它们。

P.S。默认情况下,Google Chrome会禁用本地Cookie,因此这似乎无效。只需在IE中试用,这就是为您演示的。

以下是符合您要求的解决方案:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
    var testCookie="COOKIE=ID=1&NAME=Foo&AGE=30&EMPLOYED=Y&ACTIVE=N";

    function setCookie(cname,exdays) {
        var d = new Date();
        d.setTime(d.getTime() + (exdays*24*60*60*1000));
        var expires = "expires=" + d.toGMTString();
        document.cookie = testCookie+"; "+expires;
    }

    function getCookie(name) {
         var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
            var c = ca[i];
            while (c.charAt(0)==' ') c = c.substring(1,c.length);
            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
        }
        return null;
    }

    function checkCookie() {
        var c=getCookie("COOKIE");
        var cookieElements = [];
        cookieElements = c.split("&");
        var cookieNameValuePairs = "Name   |   Value\n";
        var keyValue = [];
        for(i=0;i<cookieElements.length;i++){
            keyValue = cookieElements[i].split("=");
            cookieNameValuePairs += keyValue[0] + "   |   " + keyValue[1] + "\n";
        }

        alert(cookieNameValuePairs);
    }

</script>

</head>

<body onload="checkCookie()"></body>
</html>