當前位置:成語大全網 - 書法字典 - 如何用js操作cookie實現記住密碼的功能

如何用js操作cookie實現記住密碼的功能

什麽是餅幹

“cookie是存儲在訪問者計算機中的變量。每當同壹臺計算機通過瀏覽器請求頁面時,都會發送此cookie。您可以使用JavaScript來創建和檢索cookie值。

不同的瀏覽器存儲cookie的方式可能不同,但相同的是cookie中的內容都存儲在客戶端。(會話保存在服務器上)

關於餅幹的壹些筆記

說的通俗壹點,cookie就是用來存儲壹些客戶信息的字符串(可以通過alert(typeof document.cookie)來驗證)。

程序員可以寫任何他們想寫的東西,只要它不超過cookie的大小限制(4kb)。

操作cookie最簡單的方法就是操作document.cookie(寫下妳想保存的內容)。

cookie有壹個關鍵字“expires”,用來設置cookie的有效期。默認情況下(未設置過期時間),瀏覽器關閉時會自動清除cookies。

壹般來說,cookie的形式是這樣的:“cookie名稱1 = cookie 1;cookieName2 = cookie2Expires="+date,這裏需要註意幾點:

1.註意分號

";Expires= "可以先寫字符串,但是";Expires= "您必須遵循這種書寫方式,尤其是這個分號,否則瀏覽器不會識別您的過期時間,並將其視為cookie內容的壹部分。

例如:

如果妳寫

1 & lt;html & gt

2 & lthead & gt

3 & ltscript type = " text/JavaScript " & gt;

4 var Date = new Date();

5 date . set date(date . getdate()+10);//日期設置為十天後。

6 document . cookie = " username=findingsea^password=123^expires= "+date . togmtstring();//toGMTString方法將日期轉換為格林威治標準時間格式。

7 & lt/script & gt;

8 & lt/head & gt;

9 & ltbody & gt

10

11 & lt;/body & gt;

12 & lt;/html & gt;

打開火狐下面的選項-& gt;隱私-& gt;刪除私有Cookie

cookie過期的時間是當前會話的結束時間,即瀏覽器關閉的時間。換句話說,我們設置的過期時間根本不起作用。

很容易修復,只需在前面的代碼中expires之前加壹個分號,表示“…”;Expires= ",重新運行firefox以查看cookie。

可以看出,過期時間是10(今天是2065438+2002年8月31)之後,expires就設置成功了,所以分號很重要,非常重要!!!

2.如何清除cookie

其實清除cookie是不準確的,應該是讓cookie過期的意思。因為不能直接清空cookies(如果妳覺得document.cookie= " ",就可以清空cookies,我只能說妳還是幼稚),而且制作cookies的方法很簡單,就是set expires。我們可以將過期時間設置得很長,這樣cookies就可以保存很長時間。然後我們也可以將cookie設置為過去,這樣cookie就會立即過期。這個“過去”就是1970 65438+10月1。當我們將expires設置為這個時間時,cookie將會過期。至於為什麽是這個時候,請參考關於1970-1-1 00:00.000的知識。

3.如何設置和獲取cookie

& lt在壹個cookie中設置多個變量>;

JavaScript沒有提供基於cookie名稱獲取cookie值的方法。如上所述,document.cookie只是壹個字符串,所以我們可以解析它。如果想在得到的時候解析,需要在設置的時候設置標識符。這裏妳需要註意的壹點正好和第壹點相反。第壹點,我們警告過妳不要忘記分號,在設置標識符的時候,我建議盡量不要用分號做分隔符。我們來看壹下對比;

代碼1:

1 & lt;html & gt

2 & lthead & gt

3 & ltscript type = " text/JavaScript " & gt;

4 var Date = new Date();

5 date . set date(date . getdate()+10);

6 document . cookie = " username = findingsea;密碼= 123;expires = "+date . togmtstring();

7 & lt/script & gt;

8 & lt/head & gt;

9 & ltbody & gt

10

11 & lt;/body & gt;

12 & lt;/html & gt;

代碼2:

1 & lt;html & gt

2 & lthead & gt

3 & ltscript type = " text/JavaScript " & gt;

4 var Date = new Date();

5 date . set date(date . getdate()+10);

6 document . cookie = " username=findingsea^password=123^;expires = "+date . togmtstring();

7 & lt/script & gt;

8 & lt/head & gt;

9 & ltbody & gt

10

11 & lt;/body & gt;

12 & lt;/html & gt;

可以清楚的看到,代碼1中的密碼= 123是“吞”的。出現這種現象的原因是瀏覽器保存cookie時,在讀取分號後,認為cookie的內容已經結束。瀏覽器的理想cookie形式是“cookieName = cookieExpires=date”,但顯然我們對此並不滿意,所以要在壹個cookie中設置多個值,我們需要像代碼2壹樣用標記(不是分號)將它們分開。然後在讀取的時候也是按照標識符壹個壹個的讀取。

& lt設置多個cookies >

當然,當然,當然,以上是我們需要在同壹個cookie中設置多個變量的相對復雜的情況。更標準化的情況是cookie存儲壹個對象。但是在這種情況下,妳的cookie會占用更多的空間(與在壹個cookie中設置多個變量相比,因為妳需要為每個cookie設置壹個expires)。不過這個操作更簡單,也更規範,建議在變量少的時候使用。