2012-03-27 67 views
1

在下面的功能,有一行:JavaScript函数中这个字符串参数的用途是什么?

var username=getCookie("username"); 

这里的整体功能:

function checkCookie() 
{ 
var username=getCookie("username"); 
if (username!=null && username!="") 
    { 
    alert("Welcome again " + username); 
    } 
else 
    { 
    username=prompt("Please enter your name:",""); 
    if (username!=null && username!="") 
    { 
    setCookie("username",username,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); 
    } 
    } 
} 

whole code is here 谢谢!

+1

不只是一个参数?获取名称为“用户名”的cookie。 – xdazz 2012-03-27 05:22:55

+0

嗯,是的 - 但我们应该输入我们喜欢的任何东西(不是“用户名”),就像我们可以输入“bob”一样,例如 – Coffee 2012-03-27 05:26:28

回答

2

document.cookie包含了所有的格式与此页/会话饼干:

"<cookie_name_1>=<cookie_value_1>; <cookie_name_2>=<cookie_value_2>; ..." 

当您通过"username"getCookie()功能的c_name说法,你告诉它这是你的<cookie_name>感兴趣的

该功能主要通过document.cookie投入x每次迭代时间<cookie_name>y<cookie_value>去。如果当前<cookie_name>等于"username"(在你的例子中),那么它将返回<cookie_value>

3

Cookies以每个站点的名称/值对格式存储,类似于查询字符串的外观。

所以,当你访问cookie时,你不能只说document.cookie.username并得到的价值,你实际上必须拆分分隔符。

在getCookie()代码(这是非常低效,顺便说一句),它将搜索名称,然后获取值,它由=分隔。

1

这就是cookie的名称的,您可以在当时存储多个cookie,并且该名称对于获取所需的cookie非常重要。

相关问题