欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript實(shí)現(xiàn)cookie的操作

 更新時(shí)間:2022年05月24日 16:22:30   作者:springsnow  
這篇文章介紹了JavaScript操作Cookie的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

cookie 用于存儲(chǔ) web 頁面的用戶信息。

一、什么是 Cookie?

Cookie 是一些數(shù)據(jù), 存儲(chǔ)于你電腦上的文本文件中。

當(dāng) web 服務(wù)器向?yàn)g覽器發(fā)送 web 頁面時(shí),在連接關(guān)閉后,服務(wù)端不會(huì)記錄用戶的信息。

Cookie 的作用就是用于解決 "如何記錄客戶端的用戶信息":

  • 當(dāng)用戶訪問 web 頁面時(shí),他的名字可以記錄在 cookie 中。
  • 在用戶下一次訪問該頁面時(shí),可以在 cookie 中讀取用戶訪問記錄。

Cookie 以名/值對形式存儲(chǔ),如下所示:

username=John Doe

當(dāng)瀏覽器從服務(wù)器上請求 web 頁面時(shí), 屬于該頁面的 cookie 會(huì)被添加到該請求中。服務(wù)端通過這種方式來獲取用戶的信息。

二、創(chuàng)建Cookie

JavaScript 可以使用 document.cookie 屬性來創(chuàng)建 、讀取、及刪除 cookie。

JavaScript 中,創(chuàng)建 cookie 如下所示:

document.cookie="username=John Doe";

您還可以為 cookie 添加一個(gè)過期時(shí)間(以 UTC 或 GMT 時(shí)間)。默認(rèn)情況下,cookie 在瀏覽器關(guān)閉時(shí)刪除:

document.cookie="username=John Doe; expires=Thu, 18 Dec 2043 12:00:00 GMT";

您可以使用 path 參數(shù)告訴瀏覽器 cookie 的路徑。默認(rèn)情況下,cookie 屬于當(dāng)前頁面。

document.cookie="username=John Doe; expires=Thu, 18 Dec 2043 12:00:00 GMT; path=/";

創(chuàng)建 cookie 值的函數(shù)

首先,我們創(chuàng)建一個(gè)函數(shù)用于存儲(chǔ)訪問者的名字:

該函數(shù)設(shè)置了 cookie 名、cookie 值、cookie過期時(shí)間。

function setCookie(cname,cvalue,exdays)
{
  var d = new Date();
  d.setTime(d.getTime()+(exdays*24*60*60*1000));
  var expires = "expires="+d.toGMTString();
  document.cookie = cname + "=" + cvalue + "; " + expires; //cookie 的名稱為 cname,cookie 的值為 cvalue,并設(shè)置了 cookie 的過期時(shí)間 expires。
}

調(diào)用方法:setCookie(cookie名稱,cookie數(shù)值,過期時(shí)間(天))

setCookie('sex','男', 10);

三、讀取 Cookie

document.cookie 屬性看起來像一個(gè)普通的文本字符串,其實(shí)它不是。

即使您在 document.cookie 中寫入一個(gè)完整的 cookie 字符串, 當(dāng)您重新讀取該 cookie 信息時(shí),cookie 信息是以名/值對的形式展示的。

如果您設(shè)置了新的 cookie,舊的 cookie 不會(huì)被覆蓋。 新 cookie 將添加到 document.cookie 中,所以如果您重新讀取document.cookie,您將獲得如下所示的數(shù)據(jù):

cookie1=value; cookie2=value;

在 JavaScript 中, 可以使用以下代碼來讀取 cookie:

var x = document.cookie;

讀取 cookie 值的函數(shù)

然后,我們創(chuàng)建一個(gè)函數(shù)用戶返回指定 cookie 的值:

function getCookie(cname)
{
  var name = cname + "=";
  var ca = document.cookie.split(';');
  for(var i=0; i<ca.length; i++) 
  {
    var c = ca[i].trim();
    if (c.indexOf(name)==0) return c.substring(name.length,c.length);
  }
  return "";
}

調(diào)用方法:getCookie(cookie名稱)

getCookie('username');

四、修改 Cookie

在 JavaScript 中,修改 cookie 類似于創(chuàng)建 cookie,如下所示:舊的 cookie 將被覆蓋。

document.cookie="username=John Smith; expires=Thu, 18 Dec 2043 12:00:00 GMT; path=/";

五、刪除 Cookie

刪除 cookie 非常簡單。您只需要設(shè)置 expires 參數(shù)為以前的時(shí)間即可。如下所示,設(shè)置為 Thu, 01 Jan 1970 00:00:00 GMT:

document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT";

注意,當(dāng)您刪除時(shí)不必指定 cookie 的值。

移除 cookie函數(shù)

function removeCookie(key) {
    setCookie(key, '', -1);  //cookie的過期時(shí)間設(shè)為昨天
}

調(diào)用方法:removeCookie(cookie名稱)

removeCookie('age');

六、判斷瀏覽器是否啟用cookie

var cookiesEnabled = (function(){
  var id = new Date().getTime();
  document.cookie =   '__cookieprobe='  + id + ';path=/';
  return (document.cookie.indexOf(id) !== -1);

})();

到此這篇關(guān)于JavaScript操作Cookie的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解用JS添加和刪除class類名

    詳解用JS添加和刪除class類名

    這篇文章主要介紹了用JS添加和刪除class類名,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • JavaScript原型與實(shí)例詳解

    JavaScript原型與實(shí)例詳解

    這篇文章主要為大家介紹了JavaScript原型與實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • 深入理解JavaScript內(nèi)置函數(shù)

    深入理解JavaScript內(nèi)置函數(shù)

    下面小編就為大家?guī)硪黄钊肜斫釰avaScript內(nèi)置函數(shù)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06
  • 可簡單避免的三個(gè)JS發(fā)布錯(cuò)誤的詳細(xì)介紹

    可簡單避免的三個(gè)JS發(fā)布錯(cuò)誤的詳細(xì)介紹

    這篇文章詳細(xì)介紹了可簡單避免的三個(gè)JS發(fā)布錯(cuò)誤,有需要的朋友可以參考一下
    2013-08-08
  • JS 建立對象的方法

    JS 建立對象的方法

    JS 建立對象的方法...
    2007-04-04
  • JS中Map和ForEach的區(qū)別

    JS中Map和ForEach的區(qū)別

    本篇文章給大家詳細(xì)分析了JS中Map和ForEach的區(qū)別以及用法上的不同之處,對此有興趣的朋友參考學(xué)習(xí)下吧。
    2018-02-02
  • javascript運(yùn)行機(jī)制之this詳細(xì)介紹

    javascript運(yùn)行機(jī)制之this詳細(xì)介紹

    這篇文章主要介紹了javascript運(yùn)行機(jī)制之this,需要的朋友可以參考下
    2014-02-02
  • node.js入門教程迷你書、node.js入門web應(yīng)用開發(fā)完全示例

    node.js入門教程迷你書、node.js入門web應(yīng)用開發(fā)完全示例

    本書致力于教會(huì)你如何用Node.js來開發(fā)應(yīng)用,過程中會(huì)傳授你所有所需的“高級”JavaScript知識。本書絕不是一本“Hello World”的教程。
    2014-04-04
  • 深入理解JS異步編程-Promise

    深入理解JS異步編程-Promise

    Promise 是 ES6 新增的一個(gè)異步解決方案,它同 await 一樣,是異步的解決方案,但是相比于 await,Promise 可以同時(shí)統(tǒng)一處理多個(gè)異步操作。這一點(diǎn)是很方便的。下面我們來一起學(xué)習(xí)一下吧
    2019-06-06
  • JavaScript函數(shù)詳解

    JavaScript函數(shù)詳解

    本文結(jié)合前面發(fā)布的文章,詳細(xì)介紹了javascript的函數(shù)問題,非常的詳盡,非常的實(shí)用,這里推薦給大家,是篇不可多得的文章
    2014-11-11

最新評論