Saya menambahkan kode di bawah ini Script [lihat kode berikut] ke dalam file javascript yang disebut CookieMonster.js
.
Ini adalah pembungkus di sekitar cuplikan saat ini dari //www.quirksmode.org/js/cookies.html
Ini bekerja dengan array dan string, ia akan secara otomatis keluar dari array/string Anda ,
dan semi-titik dua ;
[yang tidak ditangani dalam cuplikan asli].
Saya telah membuat daftar penggunaan sederhana dan beberapa penggunaan bonus yang saya buat di dalamnya.
Pemakaian:
//set cookie with array, expires in 30 days
var newarray = ['s1', 's2', 's3', 's4', 's5', 's6', 's7'];
cookiemonster.set['series', newarray, 30];
var seriesarray = cookiemonster.get['series']; //returns array with the above numbers
//set cookie with string, expires in 30 days
cookiemonster.set['sample', 'sample, string;.', 30];
var messagestring = cookiemonster.get['sample']; //returns string with 'sample, string;.'
Bonus:
//It also conveniently contains splice and append [works for string or array [single string add only]].
//append string
cookiemonster.append['sample', ' add this', 30]; //sample cookie now reads 'sample, string;. add this'
//append array
cookiemonster.append['series', 's8', 30]; //returns array with values ['s1', 's2', 's3', 's4', 's5', 's6', 's7', 's8']
//splice
cookiemonster.splice['series', 1, 2, 30]; //returns array with values ['s1', 's4', 's5', 's6', 's7', 's8']
CookieMonster.js:
var cookiemonster = new Object[];
cookiemonster.append = function [cookieName, item, expDays] {
item = cm_clean[item];
var cookievalue = cookiemonster.get[cookieName];
if [cookievalue instanceof Array] {
cookievalue[cookievalue.length] = item;
cm_createCookie[cookieName, cm_arrayAsString[cookievalue], expDays];
} else {
cm_createCookie[cookieName, cookievalue + item, expDays];
}
};
cookiemonster.splice = function [cookieName, index, numberToRemove, expDays] {
var cookievalue = cookiemonster.get[cookieName];
if [cookievalue instanceof Array] {
cookievalue.splice[index, numberToRemove];
cm_createCookie[cookieName, cm_arrayAsString[cookievalue], expDays];
}
};
cookiemonster.get = function [cookieName] {
var cstring = cm_readCookie[cookieName];
if [cstring.indexOf[''] != -1] {
var carray = cstring.split[','];
for [var i = 0; i < carray.length; i++] {
carray[i] = cm_dirty[carray[i]];
}
if [carray[0] == ''] {
carray.splice[0, 1];
}
return carray;
} else {
return cm_dirty[cstring];
}
};
cookiemonster.set = function [cookieName, value, expDays] {
if [value instanceof Array] {
cm_createCookie[cookieName, cm_arrayAsString[value], expDays];
}
else { cm_createCookie[cookieName, cm_clean[value], expDays]; }
};
cookiemonster.eraseCookie = function [name] {
cm_createCookie[name, "", -1];
};
function cm_replaceAll[str, find, replace] {
return str.replace[new RegExp[find, 'g'], replace];
};
function cm_clean[ret] {
ret = cm_replaceAll[ret.toString[], ',', ','];
ret = cm_replaceAll[ret.toString[], ';', ';'];
return ret;
};
function cm_dirty[ret] {
ret = cm_replaceAll[ret, ',', ','];
ret = cm_replaceAll[ret, ';', ';'];
return ret;
};
function cm_createCookie[name, value, days] {
if [days] {
var date = new Date[];
date.setTime[date.getTime[] + [days * 24 * 60 * 60 * 1000]];
var expires = "; expires=" + date.toGMTString[];
} else var expires = "";
document.cookie = name + "=" + value + expires + "; path=/";
};
function cm_readCookie[name] {
var nameEQ = name + "=";
var ca = document.cookie.split[';'];
for [var i = 0; i < ca.length; i++] {
var c = ca[i];
while [c.charAt[0] == ' '] c = c.substring[1, c.length];
if [c.indexOf[nameEQ] == 0] return c.substring[nameEQ.length, c.length];
}
return null;
};
function cm_arrayAsString[array] {
var ret = ""; //escapes, tells that string is array
for [var i = 0; i < array.length; i++] {
ret = ret + "," + cm_clean[array[i]];
}
return ret;
};