javascript 中Cookie讀、寫與刪除操作
javascript 中Cookie讀、寫與刪除操作
前言:
在這個(gè)前端橫行的時(shí)候,頁面之間的交互需要數(shù)據(jù)的傳遞,有的數(shù)據(jù)通過url傳參的形式可以很好地解決,但是對(duì)于部分需要改變的參數(shù),你如說從頁面A到頁面B選擇數(shù)據(jù),然后從頁面B將數(shù)據(jù)再傳到頁面A(典型的栗子就是收貨地址的選擇),針對(duì)這一塊我是通過存儲(chǔ)cookie來解決的。
對(duì)于cookie的操作我給出了一些簡單的封裝,當(dāng)然也借鑒了前輩們經(jīng)驗(yàn),自己糅合了一下,對(duì)于cookie的操作,無非是讀寫和刪除,我們首先來看一下寫的操作,有寫才有讀,進(jìn)而進(jìn)行刪除等操作。
/**
* 設(shè)置COOKIE
* @param name 設(shè)置cookie的屬性名
* @param value 設(shè)置cookie的屬性值
* @param time 設(shè)置cookie的時(shí)間
*/
function setCookie(name, value , time) {
time = time ? parseFloat(time) : 0 ;
var exp = new Date();
exp.setTime(exp.getTime() + time);
// escape 這種編碼方式過時(shí)了 改用 encodeURIComponent
// document.cookie = name + "=" + escape(value) + ";expires=" + (time ? exp.toGMTString() : 'session');
document.cookie = name + "=" + encodeURIComponent(value) + ";expires=" + (time ? exp.toGMTString() : 'session');
}
我們有了寫的操作了,那么我們?cè)賮砜纯磳?duì)于讀的操作。
/**
* 獲取cookie
* @param name
* @returns {null}
*/
function getCookie(name) {
var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
if (arr = document.cookie.match(reg))
//unescape這種解碼方式好像過時(shí)了,可以采用decodeURIComponent解碼方式
//return unescape(arr[2]);
return decodeURIComponent(arr[2]);
else
return null;
}
接下就是對(duì)cookie的刪除操作了,其實(shí)這個(gè)操作很簡單,就是將cookie設(shè)置過期,cookie就自動(dòng)失效了
/**
* 刪除cookie
* @param name
*/
function delCookie(name) {
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval = getCookie(name);
if (cval != null)
document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
}
以上就是對(duì)cookie的一些簡單操作
接下來我們來談一點(diǎn)cookie的深層次的問題:cookie的跨域
Js跨域同步cookie怎么實(shí)現(xiàn)
document.cookie = "name=" + "value;" + "expires=" + "datatime;" + "domain=" + "" + "path=" + "/path" + "; secure";
/**
* 刪除cookie
* value Cookie值
* expires 有效期截至(單位毫秒)
* path 子目錄
* domain 有效域
* secure 是否安全
*/
<iframe src='http://網(wǎng)站:1234/test/Index' width='100' height='100' style="display:none"></iframe>
/*
*原頁面js里 window.location = "http://另外一個(gè)網(wǎng)站:1234/GetCookie/Index?" + document.cookie;跳到另外一個(gè)站,另外一個(gè)站獲取cookie,設(shè)置cookie
*/
var url = window.location.toString();//獲取地址
var get = url.substring(url.indexOf("liuph"));//獲取變量和變量值
var idx = get.indexOf("=");//獲取變量名長度
if (idx != -1) {
var name = get.substring(0, idx);//獲取變量名
var val = get.substring(idx + 1);//獲取變量值
setCookie(name, val, 1);//創(chuàng)建Cookie
}
以上就是今天對(duì)cookie的解讀。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- JS實(shí)現(xiàn)Cookie讀、寫、刪除操作工具類示例
- javascript 操作cookies詳解及實(shí)例
- javascript操作cookie
- Javascript 對(duì)cookie操作詳解及實(shí)例
- JS中對(duì)Cookie的操作詳解
- JS封裝cookie操作函數(shù)實(shí)例(設(shè)置、讀取、刪除)
- javascript操作Cookie(設(shè)置、讀取、刪除)方法詳解
- js中的cookie的讀寫操作示例詳解
- JS操作Cookie寫入和讀取實(shí)例代碼
- JS操作Cookies包括(讀取添加與刪除)
- JavaScript實(shí)現(xiàn)cookie的操作
相關(guān)文章
JavaScript學(xué)習(xí)筆記之JS函數(shù)
這篇文章主要簡單介紹下javascript中函數(shù)的概念以及函數(shù)的參數(shù)、返回值、局部變量、全局變量以及示例分享,是篇非常不錯(cuò)的文章,推薦給大家學(xué)習(xí)下。2015-01-01
javascript下for循環(huán)用法小結(jié)
javascript下for循環(huán)用法小結(jié)...2007-07-07
document.getElementBy("id")與$("#id")有什么區(qū)
有朋友問document.getElementBy("id")與$("#id")的區(qū)別,其實(shí)第一個(gè)就是js中獲取對(duì)象的方法, 第二個(gè)是通過自定義函數(shù)方便調(diào)用,而第三個(gè)是jquery中獲取id對(duì)象的方法2013-09-09
JavaScript函數(shù)節(jié)流和函數(shù)去抖知識(shí)點(diǎn)學(xué)習(xí)
這篇文章給大家分享了JavaScript函數(shù)節(jié)流和函數(shù)去抖的相關(guān)的知識(shí)點(diǎn)內(nèi)容,有需要的朋友們可以學(xué)習(xí)參考下。2018-07-07

