Artikel terakhir: Menggunakan JS untuk membaca, menulis, menghapus berbagi kode cookie dan instruksi anotasi terperinci, saya menemukan beberapa masalah dalam praktiknya:
1. Cookie hanya dapat didebug di Firefox pada file lokal, yaitu dan chrome tidak valid
2. Cookie tidak diatur untuk tidak pernah kedaluwarsa. Ini hanya mempertimbangkan mengatur periode waktu dan kedaluwarsa, yang jelas tidak masuk akal.
Kali ini, kode operasi cookie yang lebih masuk akal diberikan:
Salinan kode adalah sebagai berikut:
var cookie = {
get: function (k) {
return ((regexp baru (["(?:;)?", k, "= ([^;]*);?"]. gabung (""))). test (document.cookie) && regexp ["$ 1"]) || "";
},
set: function (k, v, e, d) {
var date = new date ();
var kedaluwarsa = e;
date.settime (date.getTime ()+Expiresdays*24*3600*1000);
// Jika ada waktu yang ditentukan, gunakan cookie dalam waktu yang ditentukan, jika tidak, itu tidak akan pernah kedaluwarsa
document.cookie = k+"="+v+"; kedaluwarsa ="+(e! = ''? Date.togmtString (): "gmt_string")+"; path =/; domain ="+(d || '');
},
del: function (k) {
var date = new date ();
// Tetapkan tanggal ke masa lalu
date.settime (date.getTime ()-10000);
document.cookie = k+"=; expires ="+date.togmtstring ();
}
};
Contohnya menunjukkan: Klik pada teks untuk memperluas konten, dan klik Sembunyikan Lagi. Ketika konten disembunyikan, itu masih akan disembunyikan lain kali dibuka, dan ketika konten ditampilkan, itu masih akan ditampilkan lain kali dibuka.
Salinan kode adalah sebagai berikut:
<div>
<h3> menyusut </h3>
<Div id = "tabcon">
<p> Konten di sini dapat dilihat setelah memperluas </p>
</div>
</div>
var btn = document.geteLementsbyTagname ('h3') [0];
btn.addeventListener ('klik', function () {
var isClose = this.getAttribute ('data-isclose');
if (isClose == 'tutup') {
menunjukkan();
Cookie.del ('bendera');
}kalau tidak{
bersembunyi();
Cookie.set ('flag', 'hide');
}
});
var tabcon = document.getElementById ('tabcon');
function show () {
tabcon.style.display = 'block';
btn.setAttribute ('data-isclose', 'open');
btn.innerhtml = 'shrink';
}
fungsi hide () {
tabcon.style.display = 'none';
btn.setAttribute ('data-isclose', 'tutup');
btn.innerhtml = 'expand';
}
var flag = cookie.get ('flag');
if (flag == 'hide') {
bersembunyi();
}