實(shí)例學(xué)習(xí)JavaScript讀取和寫入cookie
首先先讓我們簡(jiǎn)單地了解一下cookie.
在我們制作網(wǎng)頁的過程中,經(jīng)常需要把信息從一個(gè)頁面?zhèn)鬟f給另一個(gè)頁面,這時(shí)候就需要用到JavaScript中的cookie機(jī)制了。簡(jiǎn)單說來,cookie提供了一種便捷的方式,能夠在用戶的計(jì)算機(jī)上保存少量數(shù)據(jù)并且遠(yuǎn)程獲得它們,從而讓網(wǎng)站可以保存一些細(xì)節(jié)信息,比如用戶的習(xí)慣設(shè)置或是上一次訪問網(wǎng)站的時(shí)間。cookie本身是一些短小的信息,能夠由頁面保存在用戶的計(jì)算機(jī)上,然后被其他頁面讀取。cookie一般都設(shè)置為在一定時(shí)間后失效。
當(dāng)然,cookie也有局限之處:瀏覽器對(duì)于能夠保存的cookie數(shù)量有所限制,通常是幾百個(gè)或者多一點(diǎn)。一般情況下,每個(gè)域名20個(gè)cookies是允許的,而每個(gè)域最多能保存4KB的cookie.除了大小限制可能導(dǎo)致的問題,也有很多原因會(huì)引起硬盤上的cookie消失,比如達(dá)到有效期限了,或是用戶清理了cookie信息,或是換用了其他瀏覽器。因此,cookie不適合用來保存重要數(shù)據(jù),在編寫代碼時(shí)也要考慮到cookie獲取異常的處理方法。
在JavaScript中,使用document對(duì)象的cookie屬性來儲(chǔ)存和獲取cookie.通常,document.cookie里的信息是由成對(duì)的名稱和值組成的字符串,每一對(duì)數(shù)據(jù)的形式是:
name=value;
下面我們將通過一個(gè)簡(jiǎn)單的例子來展示在JavaScript中如何讀取和寫入cookie.
首先是createCookie.html,在該頁面中會(huì)創(chuàng)建一個(gè)cookie,完整的代碼如下:
<html> <head> <title>createCookie</title> <script> function createCookie(){ //get name and password var name = document.getElementById("name").value; var pwd = document.getElementById("pwd").value; //create cookie document.cookie = name+'|'+pwd; //go to showCookie.html page window.location.href = "showCookie.html"; } </script> </head> <body> Userame: <input id="name" type="text" /><br><br> Password: <input id="pwd" type="password" /><br><br> <button onclick="createCookie()">Submit</submit> </body> </html>
該頁面的截圖如下:
點(diǎn)擊submit按鈕,就會(huì)創(chuàng)建一個(gè)cookie,在該cookie中保存了Username和Password信息,并且會(huì)跳轉(zhuǎn)到showCookie.html頁面。其中,showCookie.html頁面的完整代碼如下:
<html> <head> <title>showCookie</title> <script> function showCookie(){ //document.cookie is a string, using split() function to get cookie date in array form var arr = document.cookie.split('|'); //processing data in cookie var cookie_info = 'Data in cookie:<br>username is: '+arr[0]+"<br>password is: "+arr[1]+'<br>'; //set content of element of id "res" document.getElementById("res").innerHTML = cookie_info; } </script> </head> <body> <button onclick="showCookie()">Show Cookie</button> <p id="res"></p> </body> </html>
頁面截圖如下:
點(diǎn)擊show Cookie按鈕就會(huì)顯示cookie里面的信息了。
下面,我們將會(huì)在本地和服務(wù)器上分別跑這個(gè)程序,分別在IE瀏覽器和Chrome瀏覽器上運(yùn)行這個(gè)程序,看看cookie的運(yùn)行情況。
首先我們?cè)诒镜剡\(yùn)行這個(gè)程序,我們將上述兩個(gè)文件都放在E盤中。先在IE瀏覽器上運(yùn)行,在createCookie.html頁面上輸入信息,并點(diǎn)擊submit按鈕,截圖如下:
跳轉(zhuǎn)到showCookie.html頁面后,點(diǎn)擊show Cookie按鈕,頁面截圖如下:
cookie在本地環(huán)境中的IE瀏覽器中運(yùn)行正常。
接下來,我們看看在Chrome瀏覽器中運(yùn)行情況,首先在Chrome瀏覽器中打開createCookie.html頁面,輸入信息,并點(diǎn)擊submit按鈕,截圖如下:
跳轉(zhuǎn)到showCookie.html頁面后,點(diǎn)擊show Cookie按鈕,頁面截圖如下:
同樣的程序,這次cookie在Chrome瀏覽器中卻運(yùn)行失敗了。
接著讓我們?cè)诜?wù)器中運(yùn)行這個(gè)程序,需要用到xampp,并打開Apache服務(wù)器,將上述兩個(gè)html文件放在xampp安裝文件夾下的htdocs文件夾下(具體的操作方法可以參考這篇博客:JavaScript之使用AJAX(適合初學(xué)者))。我們現(xiàn)在IE瀏覽器中運(yùn)行該程序,在IE瀏覽器中輸入網(wǎng)址:http://localhost/createCookie...:
點(diǎn)擊Submit按鈕,跳轉(zhuǎn)到showCookie.html頁面,并點(diǎn)擊show Cookie按鈕,截圖如下:
然后我們?cè)贑hrome瀏覽器中輸入網(wǎng)址:http://localhost/createCookie...:
點(diǎn)擊Submit按鈕,跳轉(zhuǎn)到showCookie.html頁面,并點(diǎn)擊show Cookie按鈕,截圖如下:
這次在服務(wù)器環(huán)境下,IE瀏覽器和Chrome瀏覽器的cookie都運(yùn)行正常!
- 原生js+cookie實(shí)現(xiàn)購物車功能的方法分析
- JS寫XSS cookie stealer來竊取密碼的步驟詳解
- jQuery結(jié)合jQuery.cookie.js插件實(shí)現(xiàn)換膚功能示例
- JSP的Cookie在登錄中的使用
- Angularjs cookie 操作實(shí)例詳解
- 基于js中document.cookie全面解析
- 原生JS 購物車及購物頁面的cookie使用方法
- PHP與JavaScript針對(duì)Cookie的讀寫、交互操作方法詳解
- javascript cookie的基本操作(添加和刪除)
- JS 設(shè)置Cookie 有效期 檢測(cè)cookie
相關(guān)文章
原生JS實(shí)現(xiàn)圖片懶加載之頁面性能優(yōu)化
在項(xiàng)目開發(fā)中,我們往往會(huì)遇到一個(gè)頁面需要加載很多圖片的情況。這篇文章主要介紹了頁面性能優(yōu)化原生JS實(shí)現(xiàn)圖片懶加載 ,需要的朋友可以參考下2019-04-04JavaScript中常用的字符串方法函數(shù)操作方法總結(jié)
這篇文章主要介紹了JavaScript中所有的字符串函數(shù)操作方法整理匯總,包括字符串的長(zhǎng)度、連接、查找、截取、替換、分隔、轉(zhuǎn)換等處理方法,以及網(wǎng)址中獲取文件名等等,需要的朋友可以參考下2023-12-12關(guān)于javaScript注冊(cè)click事件傳遞參數(shù)的不成功問題
在javaScript中給一個(gè)html元素注冊(cè)click事件處理函數(shù)時(shí),比如給該處理函數(shù)傳3個(gè)參數(shù)??墒遣还苁鞘褂孟旅婺欠N方式都不能給事件處理函數(shù)傳遞參數(shù)2014-07-07微信小程序如何使用canvas二維碼保存至手機(jī)相冊(cè)
這篇文章主要介紹了微信小程序如何使用canvas二維碼保存至手機(jī)相冊(cè)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用微信小程序具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07