Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: В javascript получить переменую из cookie
цитата
07/03/11 в 18:12
 Foxs
как можно быстро и главное просто получить из одного cookie в javascript 3 переменых которые в cookie записаны в виде "val1|val2|val3"
буду благодарен в виде 3+
цитата
07/03/11 в 18:50
 PsiShock
Код:

var cookie_val = "val1|val2|val3"; // то есть в cookie_val содержится значение твоей куки
...
var cookie_values = cookie_val.split('|');

// теперь cookie_values - массив с val1, val2 и т.д.
цитата
07/03/11 в 18:55
 Yacc
Для начала надо определить функцию

Код:
function getCookie( name ) {
   var n = name + "=";
   var l = document.cookie.length;
   var i = 0;
   while( i < l ) {
      var j = i + n.length;
      if( document.cookie.substring( i, j ) == n ) {
         var k = document.cookie.indexOf( ";", j );
         if( k == -1 ) { k = l; }
         return unescape( document.cookie.substring( j, k ) );
      }
      i = document.cookie.indexOf( " ", i ) + 1;
      if( i == 0 ) { break; }
   }
   return null;
}

Теперь просто:

Код:
var vars = getCookie( 'exampleCookieName' ).split( '|' );


и твои переменные в массиве vars.
цитата
07/03/11 в 20:52
 Foxs
ага отБлагодарил )))
цитата
07/03/11 в 20:55
 Foxs
а еще вопрос в догонку, VAR перед переменой зачем ставить?
цитата
07/03/11 в 21:00
 Yacc
http://javascript.ru/var
цитата
07/03/11 в 21:13
 Foxs
получается если без ВАР то переменная видна везде?

и еще дополнение к начальному вопросу. можно сделать на подобии ПХП
list(v1,v2,v3) = getCookie( 'exampleCookieName' ).split( '|' );
такая не работает конструкция
цитата
08/03/11 в 00:40
 webboxxx
без var переменная становится свойством объекта window. т.е. myVar = 1 будет эквивалентно window.myVar = 1, ну и доступна будет везде.

аналога list в яваскрипте помоему нет. но можно сделать что то типа:

Код:
var data = 'value1|value2|value3'.split('|');
['var1','var2','var3'].forEach(function(i){window[i]=data.shift()});


после этого можно обращаться к var1, var2 и var3 как к глобальным переменным.
цитата
08/03/11 в 03:52
 Yacc
Foxs писал:
можно сделать на подобии ПХП
list(v1,v2,v3) = getCookie( 'exampleCookieName' ).split( '|' );


Можно, если сделать переменные свойствами объекта:


Код:
function list( o, a ) {
   for( var i in o ) o[i] = a.shift();
}

var vars = { v1:null, v2:null, v3:null };

list( vars, getCookie( 'exampleCookieName' ).split( '|' ) );

alert(vars.v1);
alert(vars.v2);
alert(vars.v3);
цитата
08/03/11 в 22:07
 Foxs
благодарю, все равно такой сложный язык, хрен поймешь его.
цитата
09/03/11 в 20:17
 webboxxx
зато потом когда разберешься - очень удобно, я хотел бы чтоб некоторые фишки языка были в пхп.
цитата
10/03/11 в 16:32
 Foxs
да книг нормальных нет, а по инету изучать - нереально, постояно что то отвлекает.
цитата
10/03/11 в 21:09
 Foxs
Благодарю конечно, но на английском это не реально)))


Эта страница в полной версии