Привет, я новичок в JavaScript и работаю над проектом. Я пытаюсь сохранить файлы cookie, когда отправляю форму, возвращаюсь на страницу и обновляюсь. Я могу заставить его сохранять cookie в Firefox и Edge, но не в Chrome. Сможет ли кто-нибудь сказать мне, что мне не хватает?
Javacript:
"use strict";
function processCookie(){
if (document.getElementById("rememberInput").checked){
document.cookie = "username = " + document.getElementById("usernameinput").value;
}else{
var expiresDate = new Date();
expiresDate.setDate(expiresDate.getDate - 7);
document.cookie = "username=null; expires" + expiresDate.toUTCString();
}
}
function populateInfo(){
if (document.cookie){
var uname = document.cookie;
uname = uname.substring(uname.lastIndexOf(" = ") + 1);
document.getElementById("usernameinput").value = uname;
}
}
function handleSubmit(var evt ){
if (evt.preventDefault){
evt.preventDefault();
}else{
evt.returnValue = false;
}
processCookie();
document.getElementsByTagName("form")[0].submit();
}
function createEventListener(){
var loginForm = document.getElementsByTagName("form")[0];
if (loginForm.addEventListener){
loginForm.addEventListener("submit",handleSubmit,false);
}else if (loginForm.attachEvent){
loginForm.attachEvent("onsubmit",handleSubmit,false);
}
}
function setUpPage(){
populateInfo();
createEventListener();
}
if (window.addEventListener){
window.addEventListener("load",setUpPage,false);
}else if (window.attachEvent){
window.attachEvent("onload",setUpPage);
}
HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8" />
<meta id = "viewport" content = "width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0">
<title>Hands-on Project 9-2</title>
<link rel = "stylesheet" href = "styles.css" />
<script src = "modernizr.custom.65897.js"></script>
</head>
<body>
<header>
<h1>
Hands-on Project 9-3
</h1>
</header>
<article>
<div id = "errorMessage"></div>
<form action = "results.htm">
<fieldset id = "deliveryinfo">
<legend>Site Login</legend>
<label for = "usernameinput">Username</label>
<input type = "text" id = "usernameinput" name = "username" />
<label for = "passwordinput">Password</label>
<input type = "password" id = "passwordinput" name = "password" />
<input type = "checkbox" id = "rememberinput" name = "remember" value = "remember" />
<label for = "rememberinput" id = "rememberlabel">Remember me</label>
</fieldset>
<fieldset id = "submitbutton">
<input type = "submit" id = "submitBtn" value = "Login" />
</fieldset>
</form>
</article>
<script src = "script.js"></script>
</body>
</html>
Опять же, я ценю любую помощь, которую вы можете оказать.
@JonasW. localStorage намного лучше. Но если вы должны использовать файлы cookie. Вы проверили, включены ли файлы cookie в Chrome?
Всем спасибо за помощь. К сожалению, это для класса, поэтому некоторые из этих замечательных предложений не сработают. Я боюсь, что моя проблема может заключаться в том, что Chrome просто не хочет играть с моими локальными файлами cookie, поскольку IE и Firefox оба ведут себя. Я не уверен, что это так, но на данный момент я принимаю это. Я сохраню эти предложения для дальнейшего использования, когда меня не будет сдерживать этот мужчина.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я рекомендую вам использовать эту библиотеку js cookie, это поможет вам легко управлять файлами cookie
Cookies.set('name', 'value', { expires: 7 });
Cookies.get('name');
Используйте для этого localStorage. печенье - это ад.