В общем, сделал себе на сайте такую штуку, как скрытие определенных, ненужный юзеру блоков, посредством тыкания на Chekbox (Тыкнул - скрылось, убрал глочку - появилось
). Реализовывается все с помощью cookies.js :
Code
function setCookie(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 getCookie(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 eraseCookie(name) {
setCookie(name, "", -1);
}
function expandCollapse(id) {
var div = document.getElementById(id.split(':')[0]);
var status = div.style.display == 'none' ? 'block' : 'none';
div.style.display = status;
if (getCookie('informers')) {
eraseCookie('informers');
setCookie('informers', status, 30);
} else {
setCookie('informers', status, 30);
}
}
function initInformers(id) {
if (getCookie('informers')) {
document.getElementById(id.split(':')[0]).style.display = getCookie('informers');
}
}
function random_img()
{
var src = arguments[Math.floor(Math.random() * arguments.length)];
document.write("<img src=\"" + src + "\"/>");
}
и заключение блоков в
Code
<div id="blockНОМЕР_БЛОКА" style="display:block;"><script type="text/javascript">initInformers('blockНОМЕР_БЛОКА');</script>
и , а скрытие проихходит при помощи Code
onClick="expandCollapse('blockНОМЕР_БЛОКА');"
но при этом появляется такой баг, при котором если скрыт какой нибудь блок, то после обновления страницы скрываются все остальные (естественно, они все под разными номерами), и наоборот, если показать один блок, то показываются и все остальные, обрамлённые вышеупомянутым кодом. Собственно, прошу в данной проблеме, или же хотя бы поставить на путь истинный - искать баг где то в упомянутой мной реализации этой функции или же в коде страницы