Javascript-如何只显示cookie的值

Javascript - How to display only the value of a cookie?

本文关键字:cookie 的值 显示 Javascript-      更新时间:2023-09-26

我搜索了几个地方,试图找出如何只显示cookie的值而不是整个键,但对于我正在做的事情来说,它们似乎都不必要地复杂。我有一个只有一个键的cookie,userName=something,我不知道如何只显示"something"而不是userName=某物。

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();
}

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

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。

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