Darbam mums būs nepieciešamas divas funkcijas : cookie uzstādīšanas un nolasīšanas funkcijas
Cookie uzstādīšanas funkcija :
function set_cookie(name, value, expires) { if (!expires) { expires = new Date(); } document.cookie = name + "=" + escape(value) + "; expires=" + expires.toGMTString() + "; path=/"; }
Cookie nolasīšanas funkcija :
function get_cookie(name) { cookie_name = name + "="; cookie_length = document.cookie.length; cookie_begin = 0; while (cookie_begin < cookie_length) { value_begin = cookie_begin + cookie_name.length; if (document.cookie.substring(cookie_begin, value_begin) == cookie_name) { var value_end = document.cookie.indexOf (";", value_begin); if (value_end == -1) { value_end = cookie_length; } return unescape(document.cookie.substring(value_begin, value_end)); } cookie_begin = document.cookie.indexOf(" ", cookie_begin) + 1; if (cookie_begin == 0) { break; } } return null; }
Uzstādīšanas un nolasīšanas piemērs :
Piemērā klikšķinot uz saites "Uzstādīšana", ierakstām pārlūkā cookie. To paveicam ar sekojošo funkciju:
function save_cookie() { var name = "example" // cookie vārds var tmp = "Sveiks, es esmu tavs kūkijs :)!"; // ierakstāmā cookie vērtība expires = new Date(); // šībrīža datums expires.setTime(expires.getTime() + (1000 * 86400 * 365)); // cookie derīguma laiks set_cookie(name, tmp, expires); // uzstādām cookie
}
Šīs funkcijas izsaukšana no HTML :
<a href="javascript:save_cookie();">Uzstādīšana</a>
Lai nolasītu cookie, izmantosim funkciju get_cookie() un uzskatāmībai ierakstīsim iegūto lielumu HTML-slānī (div). Izdarīsim to ar šādu funkciju :
function write_cookie() { // iegūstam cookie un ierakstām to slānī layer ar innerHTML palīdzību
document.getElementById('layer').innerHTML = get_cookie('example'); }
Šīs funkcijas izsaukšana no HTML :
<a href="javascript:write_cookie();">Nolasīšana</a> // slānis, kurā izvadām cookie vērtību<div id="layer" style="padding:5px;"></div>
Strādājošs piemērs
Piemērs masīva saglabāšanai un iegūšanai :
Cookie uzstādīšana un iegūšana ir līdzīga iepriekšējā piemērā aprakstītajam, ar to atšķirību, ka pirms tam nepieciešams apstrādāt pašu masīvu.
Iegūstam masīva vērtības un ierakstām tās cookie ar funkciju save_array():
function save_array() { var myArray = [1, 2, "sveiks"]; // masīvs ar vērtībām var tmp = ""; if (myArray != null) { // apsekojam masīvu, savācot visas vērtības vienā mainīgajā un atdalot tās ar komatu for (i in myArray) { if (myArray[i] != "") { tmp = tmp + myArray[i]; if (i != myArray.length-1) { tmp = tmp + ","; } } } } expires = new Date(); // šībrīža datums
expires.setTime(expires.getTime() + (1000 * 86400 * 365)); // cookie derīguma termiņš set_cookie("example", tmp, expires); // uzstādām cookie ar funkciju set_cookie }
Šīs funkcijas izsaukšana no HTML :
<a href="javascript:save_array();">Uzstādīšana</a>
Nolasām cookie vērtības un izvadām tās HTML-slānī (div) :
function write_array() { var getmyArray = get_cookie('example'); // nolasām cookie vērtības
var tmp = ''; getmyArray = getmyArray.split(",") // sadalām mainīgo atsevišķās vērtībās un ierakstām tās masīvā
for (i=0; i<getmyArray.length; i++) // apsekojam masīvu un formatējam to izvadei { tmp += getmyArray[i]; if (i != getmyArray.length) { tmp += "<br />"; } } // izvadām masīvu slānī ar identifikātoru layer2 document.getElementById('layer2').innerHTML = tmp; }
Šīs funkcijas izsaukšana no HTML :
<a href="javascript:write_array();">Izvadīt masīvu</a> // slānis, kurā tiek izvadītas cookie vērtības
<div id="layer2" style="padding:5px;"></div>