/
Coderdev
/
web-static-labs
Обзор
Документация
Войти
/
Coderdev
/
web-static-labs
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
html/lab6/task3/script.js
96 строк
3 KB
Coderdev
1
12 май 2026, 12:37
12 май 2026, 12:37
d8ecd0f
Код
Авторство
О чём код?
document.addEventListener('DOMContentLoaded', () => { const taskInput = document.getElementById('taskInput'); const addTaskBtn = document.getElementById('addTaskBtn'); const taskList = document.getElementById('taskList'); let tasks = JSON.parse(localStorage.getItem('myTasks')) || []; const saveToStorage = () => { localStorage.setItem('myTasks', JSON.stringify(tasks)); }; const copyToClipboard = (text) => { if (navigator.clipboard && window.isSecureContext) { navigator.clipboard.writeText(text).then(() => { alert("Текст скопирован!"); }).catch(err => { console.error('Ошибка Clipboard API:', err); fallbackCopy(text); }); } else { fallbackCopy(text); } }; const fallbackCopy = (text) => { const textArea = document.createElement("textarea"); textArea.value = text; textArea.style.position = "fixed"; textArea.style.left = "-9999px"; textArea.style.top = "0"; document.body.appendChild(textArea); textArea.focus(); textArea.select(); try { document.execCommand('copy'); alert("Текст скопирован!"); } catch (err) { alert("Не удалось скопировать"); } document.body.removeChild(textArea); }; const displayTask = (text, dateString, index) => { const taskItem = document.createElement('div'); taskItem.className = 'task-item'; taskItem.innerHTML = ` <div class="task-date">${dateString}</div> <div class="task-text">${text}</div> <div class="btn-group"> <button class="copy-btn">Копировать в буфер</button> <button class="delete-btn">Удалить задачу</button> </div> `; taskItem.querySelector('.copy-btn').addEventListener('click', () => { copyToClipboard(text); }); taskItem.querySelector('.delete-btn').addEventListener('click', () => { tasks.splice(index, 1); saveToStorage(); renderTasks(); }); taskList.prepend(taskItem); }; function renderTasks() { taskList.innerHTML = ''; tasks.forEach((task, index) => { displayTask(task.text, task.date, index); }); } addTaskBtn.addEventListener('click', () => { const text = taskInput.value.trim(); if (text === "") { alert("Сначала введите текст задачи"); return; } const now = new Date(); const dateString = now.toLocaleString('ru-RU'); tasks.push({ text, date: dateString }); saveToStorage(); renderTasks(); taskInput.value = ""; }); renderTasks(); });