Javascript - 如何只显示cookie的值?

时间:2014-10-20 03:21:59

标签: javascript html cookies

我搜索了几个地方试图找出如何仅显示cookie的值而不是整个键,但它们对于我正在做的事情似乎都是不必要的复杂。我有一个只有一个键的cookie,userName = something,我无法弄清楚如何只显示“某些东西”而不是userName = something。

function userCookie(form)
{
    if(form.User_Name.value == "")
    {
        alert("Cannot accept a blank user name, please enter a valid name");
        return false;
    }
    else
    {
        document.cookie="userName=" + form.User_Name.value;
        alert(document.cookie);
        return false;
    }                       
}

function newWindow() 
{       
    var userWindow = window.open("","MyUserName","height=300,width=300");
    userWindow.document.open();
    userWindow.document.write("<p>Welcome Back</p>");
    userWindow.document.write(document.cookie);
    userWindow.document.close();
}

4 个答案:

答案 0 :(得分:0)

document.cookie将始终返回cookie1=value1;cookie2=value2之类的键值对。 您可以使用以下函数从document.cookie中分割cookieName和“=”以获取值。

function getCookie(cname) {
    var name = cname + "=";
    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);
        if (c.indexOf(name) != -1) return c.substring(name.length,c.length);
    }
    return "";
} 

代码来自w3schools

答案 1 :(得分:0)

如果您总是只有一个Cookie,那么document.cookie.split("=")[1]就足够了。

答案 2 :(得分:0)

var cookieArray = document.cookie.split("; "),
    cookieObject = {},
    i, pair;

for (i = cookieArray.length - 1; i >= 0; i--) {
    pair = cookieArray[i].split("=");
    cookieObject[pair[0]] = pair[1];
}

alert(cookieObject.userName);

答案 3 :(得分:0)

function getCookie(name) {
  let x = document.cookie.split(";").find(a => a.includes(name + "="));
  return !!x ? x.trim().substr(name.length+1) : ""
}