2012-03-27 63 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非常重要。

相關問題