2013-07-14 8 views
1

Я писал этот код, основанный на учебнике, и в учебнике код работает, но когда я пытаюсь сделать это сам, это не так. Вы можете мне помочь ?Javascript cookie код не работает

Код: (Tutorial Link).

<!DOCTYPE html> 
<html> 
    <head> 
     <script type="text/javascript"> 
      var user_name; 
      var expires = new Date(); 
      if ((document.cookie == "") == false) 
      { 
       var length = document.cookie.length - 1; 
       var message = document.cookie.substr(5, length); 
       document.write("<h2><center>Welcome back, " + message + "</center></h2>"); 
      } 

      function check() 
      { 
       user_name = document.getElementById("name").value; 
       expires.setFullYear(expires.getFullYear() + 1); 
       document.cookie = escape("name") + escape(user_name) + "; expires = " + expires.toGMTString(); 
       alert(document.cookie); 
      } 
     </script> 
     <meta charset="utf-8"> 
     <title></title> 
    </head> 
    <body> 
     Name: <input type="text" id="name" /> 
     <input type="button" value="Enter" onClick="check()" /> 
    </body> 
</html> 
+2

Это плохой учебник. Вы можете ссылаться на него? – alex

+0

Да, если этот код взят из учебника, обязательно найдите другой. – Pointy

+0

не теряйте время, выполняя это. Используйте jquery.cookie https://github.com/carhartl/jquery-cookie – erdimeola

ответ

1

Поскольку вы упомянули I was creating this code that is tutorial based and on the tutorial, так что если это просто для test myself вещи, то вы можете рассмотреть, чтобы использовать этот (Demo Here), просто введите имя и значение куков в имени куки и ценности печенья поля, соответственно, если вы хотите, чтобы Add новый файл cookie и Delete cookie просто введите имя файла cookie в поле имени файла cookie и его имя для View, вы можете добавить кнопки Delete All только путем разделения файлов cookie на & и сделать цикл и вызывая функцию eraseCookie(), попробуйте сами.

Также в сети уже есть better ones, но этот вариант неплохой.

function createCookie(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=/"; 
    return true; 
} 

function readCookie(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) { 
    if(!name) { 
     alert('\nPlease enter the name of cookie in cookie the name field.'); 
     return false; 
    } 
    if(readCookie(name)){ 
     if(createCookie(name,"",-1)) { 
      alert('Cookie "' + name + '" has been deleted!');   
     } 
    } 
    else alert('Cookie "' + name + '" doesn\'t exist!'); 
} 

function addCookie() 
{ 
    cookie_name = document.getElementById("cName").value.replace(/^\s+|\s+$/g,''); 
    cookie_value = document.getElementById("cValue").value.replace(/^\s+|\s+$/g,''); 
    if(cookie_name.length && cookie_value.length){ 
     createCookie(cookie_name, cookie_value, 7); 
     alert("New cookie has been added, \ncookie name : " + cookie_name + "\ncookie value : " + cookie_value); 
    } 
    else{ 
     alert("Please enter a name and value for the cookie."); 
    } 
} 

function showCookie(name) 
{ 
    if(!name) { 
     alert('\nPlease enter the name of cookie in the cookie name field.'); 
     return false; 
    } 
    var val = readCookie(name); 
    if(val){ 
     alert(readCookie(name)); 
    } 
    else alert('Cookie "' + name + '" doesn\'t exist!'); 
} 

// Onload to check and greet 
if(name = readCookie('name')) alert('Welcome back, ' + name); 

Example Here.

+0

может кто-нибудь просто скажите мне, в чем проблема в этом коде – user2580136

+1

@ user2580136, что случилось? этот код запускается в ссылке на виртуальный диск. –

Смежные вопросы