Происходит неправильное выполнение сохранение в localStorage
Где-то ошибся, помогите исправить! Надпись должна появляться на экране рандомно из заданного массива (*сделано, но не правильно, так как выдает undefined вместо надписи или вообще ничего), она должна хранится в течение заданного времени (*сделано), даже при перегрузке страницы (*сделано), по истечению времени должна вернуться на свою прежнюю надпись "НАЖМИ МЕНЯ" (*сделано)
<!DOCTYPE html>
<html>
<head>
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<meta charset="utf-8">
<title>На сдачу</title>
</head>
<body>
<div id = "dv">
<div id = "qq">
<p id = "pp">НАЖМИ МЕНЯ</p>
</div>
<button id = "but" >Click me!</button>
</div>
<div id="text">Нажми на кнопку</div>
<!-- ---------------------------------------------------------------------------------------------------------------- -->
<script type="text/javascript">
var ans
function getCookie(name) { // Функция получения куки по имени
let matches = document.cookie.match(new RegExp(
"(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
));
return matches ? decodeURIComponent(matches[1]) : undefined;
}
var checkbutt = document.getElementById('but');
checkbutt.disabled = true;
function checkButton() {
var time = new Date(); // Получаем текущую дату
var cookie = getCookie('clicked'); //Получаем куки по имени через функцию
var dif = 0; // Если нет значения в куки, то останется 0
if (cookie){ //Если куки существую, то
let cookieTime = new Date(cookie); // Преобразуем значение куки в дату
let dif1 = time - cookieTime; // Вычитаем текущее время минус время куки, чтобы получить разницу.
dif = Math.round(dif1/1000); // округляем и делим на 1000(это миллисекунды)
}
var z = document.getElementById('text'); // получаем значение куда записывать (для теста
var duration = 10; // Длительность между нажатиями.Поставил 60 секунд для демонстрации. Заменить 1200, если нужен час.
if (dif > duration || dif == 0) { // Если длительность больше указанного времени, или равно 0, то выполняем операцию
checkbutt.disabled = false;
localStorage.removeItem("text");
document.getElementById('pp').textContent = "НАЖМИ МЕНЯ";
} else {
document.getElementById('pp').textContent = localStorage.getItem("text");
checkbutt.disabled = true;
var f = duration - dif; // получаем разницу для вывода сенкуд. Можно будет поменять до минут и так далее, смотря как надо выводить
z.innerText = "До повторного нажатия кнопки подождите "+f+" секунд"; // Выводим сообщение с таймером секунд.
}
}
setInterval(checkButton, 500);
but.onclick = function () { // При нажатии кнопки
var time = new Date();
document.cookie = "clicked=" + time; // Записываем данные в куки по имени.
//new code//
function aa(){
let popUpWindow = document.querySelector('#pp');
const showQuote = el => {
let txt = [
'Рандом1',
'Рандом2',
'Рандом3',
'Рандом4',
'Рандом5',
'Рандом6',
'Рандом7',
'Рандом8',
'Рандом9',
'Рандом10',
'Рандом11',
'Рандом12'
];
el.innerText = ans = txt[Math.floor(Math.random() * txt.length)];
console.log(ans)
}
document.getElementById('pp').style.display = "block"
let timerID = setTimeout(() => showQuote(popUpWindow), 1);
}
document.getElementById('pp').innerHTML = aa()
//new code//
if (localStorage.getItem("text")!==null){
var text = localStorage.getItem("text");
document.getElementById("pp").textContent=text;
}
document.getElementById("pp").textContent = ans;
localStorage.setItem("text",""+ans+"");
}
</script>
<!-- -------------------------------------------------------------------------------------------------------------------------- -->
</body>
</html>