Hazır bir JS'ye nasıl Cookie eklenir?
Merhabalar,
aşağıdaki hazır bir JS kod var elimden, kütüphaneden buldum buna nasıl Cookie tanımlayabiliriz acaba?
function dodajAktywne(elem) {
var a = document.getElementsByTagName('storieCard');
for (i = 0; i < a.length; i++) {
a[i].classList.remove('active')
}
elem.classList.add('active');
}
Yardım için simdiden teşekkürler.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
Ad kısmına activeState yazıp value'ya da duruma göre 0 ya da 1 yaz. Kendi fonksiyonunda active class'ını eklediğin yerde de
Tayfun hocanın fonksiyonunu kullanıp cookie ekle.
Daha sonra da active durumunu kontrol et. Cookieleri okumak için bu fonksiyonu kullabilirsin:
function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
getCookie(activeState);
@tayfunerbilen hocam merhabalar, mesajınızı ancak görüyorum kusuruma bakmayınız, demek istediğim sorumu tam detaylı anlatamadım affolayınız.
Yukarıdaki benim verdiğim kod #storieCard id değerini HTML'de tıklanınca active classı ekleniyor ancak sayfa yenilediği zaman o active classı gidiyor, bu yüzden buna Cookie eklemeyi düşünmüştüm.
Attığınız kodunu "ad" kısmında storieCard olarak mı ekleyeceğim acaba? JS hakkında çok fazla bilgim yok hocam
javascript'de cookie oluşturmak belli bir şey, bu koda özel bir şey mi yapmak istedin anlayamadım sorunu. Aşağıdaki gibi cookie oluşturabilirsin, kodunun içindede istediğin yerde kullanabilirsin zaten fonksiyon yani çok karmaşık bir kodun yok :)
function setCookie(name, value, days) {
var date = new Date();
date.setDate(date.getDate() + days);
document.cookie = name + '=' + escape(value) + '; expires=' + date.toUTCString();
console.log('cookie ' + name + ' created');
}
setCookie('ad', 'değer', 3); // 3 günlük ad adında değer depolayan cookie oluşturduk