Forum Webscript.Ru
Программирование => JavaScript & JScript => Тема начата: Dim от 31 Мая 2005, 11:18:09
-
Такая вот история.
JS выковыривает записанное значение из куки прибавляет единицу и записывает обратно в куку.
Вот кусок считывания и записи:
------------------------------------------
function Get_Cookie(Name) {
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) { // if cookie exists
offset += search.length
end = document.cookie.indexOf(";", offset); // set index of beginning of value
if (end == -1) // set index of end of cookie value
end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}
function SetCookie (name,value,expires,path,domain,secure) {
document.cookie = name + "=" + escape (value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}
------------------------------------------
Записывает в куку нормально и считываает из куки тоже всё пучком. Но вот когда произвожу с имеющимися значениями действия, то получается ерунда.
Т.е. если код такой:
var t = 3;
var i = 4;
var ti = t + i;
document.write(\'ti = \'+ti+\'
\');
то всё путём и ввыводит сумму двух цифр
А если такой:
var t = Get_Cookie(\'fpp\');
var i = 4;
var ti = t + i;
document.write(\'ti = \'+ti+\'
\');
где предварительно в куку загнал "3", то выводит не сумму чисел из куки и заданной, а делает их склейку
и выводит "34" ! Что за ерунда никак понять не могу.
Делал вывод значения куки для проверки
document.write(t)
Всё путём выводит "3" , а подтыкаю в другие действия, то склеивает и всё тут.
В куках хранится что то вроде текущего счётчика и нужно каждый раз при выполнения скрипа прибавлять к имеющемуся некоторое значение.
Вот ведь чувствую что что-то элементарное, а куда рыть не знаю. Буду всем признателен за помощь.
-
В учебных целях выведи typeof(t);
parseInt(), соответственно.
-
to virka
Сделал и получил следующее:
var t = Get_Cookie(\'fpp\');
document.write(\'parseInt = \'+parseInt(t)+\'
\'); // Выводит "parseInt = 5" если в куку записывали "5" и его от туда вытащили так: var t = Get_Cookie(\'fpp\');
document.write(\'tapyt = \'+typeof(t)+\'
\'); // Выводит "tapyt = number" при var t = 3; и выводит tapyt = string при var t = Get_Cookie(\'fpp\');
Получается значение из куки не является числом и его нужно преобразовывать в число. Как это так? Записывал я туда число, а назад получаю стринг.
Нужно всегда использовать parseInt(), так что ли? Ерунда какая-то. Не что-то тут не так:insane: