#javascript #html
#javascript #HTML
Вопрос:
У меня проблема. JavaScript всегда отображает окно для запроса ввода при каждой перезагрузке страницы. Предполагается запрашивать только один раз, а затем, когда я перезагружаю страницу, на ней должно отображаться «Добро пожаловать снова: your_input_here». Я попробовал это с кодом VS, используя Live Server, и это сработало. Однако, когда я захожу в папку, содержащую файлы, и нажимаю на index.html досье. Он отобразил окно запроса ввода, я ввел ввод и нажал кнопку отправки, затем, когда я перезагружаю страницу, окно отображается еще раз и запрашивает ввод без сохранения моего последнего ввода. Кто-нибудь может мне помочь? Спасибо
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 ca = document.cookie.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 "";
}
function checkCookie() {
var user = getCookie("username");
if (user != "") {
alert("Welcome again " user);
} else {
user = prompt("Please enter your name:", "");
if (user != "" amp;amp; user != null) {
setCookie("username", user, 365);
}
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-width=1">
<script src="./cookie.js"></script>
<title>A14</title>
</head>
<body onload="checkCookie()">
</body>
</html>
Комментарии:
1. Файлы cookie привязаны к домену, а путь к файловой системе в адресной строке вашего браузера не является доменом. Вы должны использовать liveserver для тестирования этой функции
2. Файлы cookie не работают при просмотре с использованием протокола file:///, в зависимости от браузера.