#javascript #cookies
#javascript #файлы cookie
Вопрос:
У меня есть файл cookie, который запоминает, скрыт ли мой выпадающий список, виден он или нет. Затем я добавил изображение в выпадающий список и также переключил фотографии, но файл cookie, похоже, не помнит, в каком состоянии находится переключатель.
<script type="text/javascript">
<!--
var state;
var stateTog;
window.onload = function () {
obj = document.getElementById('featured');
state = (state == null) ? 'hide' : state;
obj.className = state;
document.getElementById('featured-header').onclick = function () {
var option = ['tel1', 'tel2'];
for (var i = 0; i < option.length; i ) {
objTog = document.getElementById(option[i]);
objTog.className = (objTog.className == "visible") ? "hidden" : "visible";
}
obj.className = (obj.className == 'show') ? 'hide' : 'show';
state = obj.className;
stateTog = objTog.className;
setCookie();
return false;
}
}
function setCookie() {
exp = new Date();
plusMonth = exp.getTime() (31 * 24 * 60 * 60 * 1000);
exp.setTime(plusMonth);
document.cookie = 'State=' state ';expires=' exp.toGMTString();
document.cookie = 'StateTog=' stateTog ';expires=' exp.toGMTString();
}
function readCookie() {
if (document.cookie) {
var tmp = document.cookie.split(';')[0];
state = tmp.split('=')[1];
stateTog = tmp.split('=')[1];
}
}
readCookie();
//-->
</script>
Комментарии:
1. Если вам нужна помощь, вам нужно будет расширить свой вопрос: с какой конкретной проблемой вы столкнулись? Что вы пробовали? Что вы ожидаете, что произойдет?
2. Я только что добавил некоторую информацию, пожалуйста, дайте мне знать, если вам нужно больше
Ответ №1:
Вот лучший скрипт для создания файлов cookie
Использование:
stateTog = objTog.className;
setCookie("State",state,expiryDate);
setCookie("StateTog",stateTog,expiryDate);
function readCookie() {
state = getCookie("State");
stateTog = getCookie("StateTog");
}
// cookie.js file
var daysToKeep = 14; // default cookie life...
theCookie = '';
today = new Date();
expiryDate = new Date(today.getTime() (daysToKeep * 86400000));
/* Cookie functions originally by Bill Dortsch */
function setCookie (name,value,expires,path,theDomain,secure) {
value = escape(value);
var theCookie = name "=" value
((expires) ? "; expires=" expires.toGMTString() : "")
((path) ? "; path=" path : "")
((theDomain) ? "; domain=" theDomain : "")
((secure) ? "; secure" : "");
document.cookie = theCookie;
}
function getCookie(Name) {
var search = Name "="
if (document.cookie.length > 0) { // if there are any cookies
offset = document.cookie.indexOf(search)
if (offset != -1) { // if cookie exists
offset = search.length
// set index of beginning of value
end = document.cookie.indexOf(";", offset)
// set index of end of cookie value
if (end == -1) end = document.cookie.length
return unescape(document.cookie.substring(offset, end))
}
}
}
function delCookie(name,path,domain) {
if (getCookie(name)) document.cookie = name "="
((path) ? ";path=" path : "")
((domain) ? ";domain=" domain : "")
";expires=Thu, 01-Jan-70 00:00:01 GMT";
// alert(name ' marked for deletion');
}
Комментарии:
1. Я понимаю, что использую это в cookie js, но код использования, как мне использовать это, чтобы заставить мой файл cookie работать, я довольно новичок в Javascript.. спасибо за ваш ответ
2. @okMonty — Возможно, я пропустил ваш комментарий. Вы устранили свои проблемы?
Ответ №2:
Этот код в функции readCookie выглядит проблематичным:
state = tmp.split('=')[1];
stateTog = tmp.split('=')[1];
Я ожидал бы, что state и stateTog будут иметь одинаковое значение, что не обязательно соответствует задуманному. Похоже, что код должен перебирать все пары ключ / значение.