Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] ciesteczka w funkcji
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
ebnott
  1. <script language="javascript" type="text/javascript">
  2.  
  3. var exp = new Date();
  4. exp.setTime(exp.getTime()+ 1000*60*60*24*365);
  5. exp.toGMTString();
  6.  
  7. function ColorIn(color) {
  8.  
  9. if (color == 'blue' ) {
  10. color2 = '0088cc';
  11. SetCookie("kolor", color, exp);
  12. }
  13. if (color == 'green' ) {
  14. color2 = '009900';
  15. SetCookie("kolor", color, exp);
  16. }
  17. if (color == 'red' ) {
  18. color2 = 'bb0000';
  19. SetCookie("kolor", color, exp);
  20. }
  21.  
  22. // (...)
  23.  
  24. }
  25.  
  26. if(!GetCookie("kolor"))
  27. {
  28. styl = "blue.css";
  29. }
  30. else
  31. {
  32. styl = GetCookie("kolor");
  33. styl += ".css";
  34. }
  35.  
  36. document.write("<link href='"+styl+"' type='text/css' rel='StyleSheet' />");


Możecie mi powiedzieć dlaczego ciasteczko zawsze wygasa po zakończeniu sesji, a na IE w ogóle się nie tworzy?
I byłbym wdzięczny za optymalizację kodu.
paziek
Do ciasteczek w JS używam tych 3 funkcji, zdaje się z w3schools

  1. function createCookie(name,value,days){//name => nazwa ciasteczka | value => wartość ciasteczka | days => ile ma ciasteczko być przechowywane - w dniach. (puste daje przechowywanie na czas sesji)
  2. if(days){
  3. var date=new Date();
  4. date.setTime(date.getTime()+(days*24*60*60*1000));
  5. var expires='; expires='+date.toGMTString();
  6. } else var expires='';
  7. document.cookie=name+"="+value+expires+'; path=/';
  8. }
  9. function readCookie(name){//zwraca wartość ciasteczka o nazwie => name. Jeśli ciasteczka nie ma, to zwraca => null
  10. var nameEQ=name+'=';
  11. var ca=document.cookie.split(';');
  12. for(var i=0;i<ca.length;i++){
  13. var c=ca[i];
  14. while(c.charAt(0)==' ') c=c.substring(1,c.length);
  15. if(c.indexOf(nameEQ)==0) return c.substring(nameEQ.length,c.length);
  16. }
  17. return null;
  18. }
  19. function eraseCookie(name){createCookie(name,"",-1);}//kasuje ciasteczko o nazwe => name


w funckji ColorIn() użyj switch'a zamiast if'a.

  1. switch(color) {
  2. case 'red':
  3. //kod do wykonania
  4. break;
  5. case 'green':
  6. //kod do wykonania
  7. break;
  8. case 'yellow':
  9. //kod do wykonania
  10. break;
  11. default:
  12. //kod do wykonania jeśli zmienna color będzie miała wartość inną aniżeli te przewidziane
  13. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.