2017-03-06 5 views
2

Ich versuche, die Cookies, die ich gespeichert habe, zu drucken. Zum Beispiel, wenn ich John Smith geben, dann sollte es so aussehen:Wie entfernen Sie bestimmte Zeichen mithilfe von Cookies?

Welcome John Smith 

Wenn es jedoch druckt es wie folgt aussieht:

Welcome firstname=John lastname=Smith 

Ich weiß nicht, wie die cookie loszuwerden und das Zeichen =. Ich habe versucht, Teilzeichenfolge zu verwenden, aber es druckt nur Vorname = dann wird der tatsächliche Name verworfen.

<form method="post" onsubmit="return savecookies()" autocomplete="on"> 
     <div class="sep"> 
     <h1 class="header">Welcome <span id="greetings"></span></h1> 
     </div><br> Firstname 
     <br> 
     <input type="text" name="fname" id="fname" pattern="[A-Za-z\-]+" maxlength="25" required placeholder="Enter first name" autofocus><br> Lastname 
     <br> 
     <input type="text" name="lname" id="lname" pattern="[A-Za-z\-]+" maxlength="25" required placeholder="Enter last name"><br> 
     <input type="submit" onclick="savecookies(); return false;" value="Submit"> 
     </div> 
</form> 

function savecookies() { 
     var fname = document.getElementById("fname").value; 
     setCookie("firstname", fname, 1); 

     var lname = document.getElementById("lname").value; 
     setCookie("lastname", lname, 1); 
    } 

function setCookie(cookieName, cookieValue, length) { 
    var date = new Date(); 
    date.setTime(date.getTime() + (length * 24 * 60 * 60 * 1000)); 
    var expires = "expires=" + date.toGMTString(); 
    document.cookie = cookieName + "=" + cookieValue + ";" + expires + ";path=/"; 
} 

function getCookie() { 
    var decodedCookie = decodeURIComponent(document.cookie); 

    var ca = decodedCookie.split(';'); 
    var msg = ""; 
    for (var i = 0; i < ca.length; i++) { 
    var c = ca[i]; 
    } 
    var msg = ca[1] + " " + ca[2]; 
    document.getElementById("greetings").innerHTML = msg; 
    return ""; 
} 
+0

Es ist wegen Sie drucken alle in Ihrem Browser gespeicherten Cookies. Versuchen Sie, den Cookie über seinen Namen aufzurufen und drucken Sie ihn aus. – CodeMonkey

Antwort

3

See, diese Arbeit in Firefox und Safari

<form > 
     <div class="sep"> 
     <h1 class="header">Welcome <span id="firstname"></span> <span id="lastname"></span></h1> 
     </div><br> 


     <br> 
     <input type="text" name="fname" id="fname" pattern="[A-Za-z\-]+" maxlength="25" required placeholder="Enter first name" autofocus><br> Lastname 
     <br> 
     <input type="text" name="lname" id="lname" pattern="[A-Za-z\-]+" maxlength="25" required placeholder="Enter last name"><br> 
     <input type="button" onclick="savecookies();" value="save and show"> 
     </div> 
</form> 

<script> 

function savecookies() { 

     var fname = document.getElementById("fname").value; 
     setCookie("firstname", fname, 1); 

     var lname = document.getElementById("lname").value; 
     setCookie("lastname", lname, 1); 

loadCookie(); 
} 

function loadCookie() 
{ 

    document.getElementById("firstname").innerHTML = getCookie("firstname"); 
    document.getElementById("lastname").innerHTML = getCookie("lastname"); 
} 

function setCookie(cname, cvalue, exdays) { 
    var d = new Date(); 
    d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); 
    var expires = "expires="+d.toUTCString(); 
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 
} 

function getCookie(cname) { 
    var name = cname + "="; 
    var decodedCookie = decodeURIComponent(document.cookie); 
    var ca = decodedCookie.split(';'); 
    for(var i = 0; i <ca.length; i++) { 
     var c = ca[i]; 
     while (c.charAt(0) == ' ') { 
      c = c.substring(1); 
     } 
     if (c.indexOf(name) == 0) { 
      return c.substring(name.length, c.length); 
     } 
    } 
    return ""; 
} 

</script> 
+0

Dies ist die richtige Antwort, aber versuchen Sie, eine Funktion zu implementieren, die mehrere Argumente akzeptiert, um die erforderlichen Cookies zu erhalten. – CodeMonkey

+0

siehe jetzt, ich aktualisiert. Mit 2 Elementen, wäre das das? –

+0

Das passt zu seinen Bedürfnissen. Ich habe darüber nachgedacht, mehrere Parameter zu geben, um jede Art von Argument zu akzeptieren, das der Funktion "getCookie (cname)" zur Verfügung gestellt wird. Er wird also eine dynamische Option haben, um die Cookies zu bekommen. Wie auch immer, das wäre zu weit fortgeschritten. Das ist was er braucht. Prost für die Unterstützung.! – CodeMonkey

Verwandte Themen