/
Coderdev
/
web-static-labs
Обзор
Документация
Войти
/
Coderdev
/
web-static-labs
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
html/lab6/task3/script.js
1 строка
3 KB
Coderdev
1
30 мар 2026, 18:31
30 мар 2026, 18:31
020a8dd
Код
Авторство
О чём код?
"use strict";const STORAGE_KEY="lab6TodoList",taskText=document.getElementById("taskText"),addTaskBtn=document.getElementById("addTaskBtn"),clearAllBtn=document.getElementById("clearAllBtn"),taskList=document.getElementById("taskList"),message=document.getElementById("message");addTaskBtn.addEventListener("click",addTask);clearAllBtn.addEventListener("click",clearAll);window.addEventListener("DOMContentLoaded",renderTasks);function getTasks(){const raw=localStorage.getItem(STORAGE_KEY);return raw?JSON.parse(raw):[]}function saveTasks(tasks){localStorage.setItem(STORAGE_KEY,JSON.stringify(tasks))}function addTask(){const text=taskText.value.trim();if(!text){message.textContent="Введите текст задачи.";return}message.textContent="";const tasks=getTasks();tasks.unshift({id:Date.now(),text,createdAt:new Date().toISOString()});saveTasks(tasks);taskText.value="";renderTasks()}function clearAll(){localStorage.removeItem(STORAGE_KEY);renderTasks()}function deleteTask(id){const tasks=getTasks().filter(task=>task.id!==id);saveTasks(tasks);renderTasks()}function renderTasks(){const tasks=getTasks();taskList.innerHTML="";if(tasks.length===0){taskList.innerHTML='<p class="empty">Список задач пока пуст.</p>';return}for(const task of tasks){const taskItem=document.createElement("div");taskItem.className="task-item";const taskDate=document.createElement("div");taskDate.className="task-date";taskDate.textContent=new Date(task.createdAt).toLocaleString();const taskContent=document.createElement("div");taskContent.className="task-text";taskContent.textContent=task.text;const actions=document.createElement("div");actions.className="task-actions";const copyBtn=document.createElement("button");copyBtn.type="button";copyBtn.className="copy-btn";copyBtn.textContent="Копировать в буфер";copyBtn.addEventListener("click",()=>copyText(task.text));const deleteBtn=document.createElement("button");deleteBtn.type="button";deleteBtn.className="delete-btn";deleteBtn.textContent="Удалить задачу";deleteBtn.addEventListener("click",()=>deleteTask(task.id));actions.append(copyBtn,deleteBtn);taskItem.append(taskDate,taskContent,actions);taskList.append(taskItem)}}function copyText(text){if(navigator.clipboard&&window.isSecureContext){navigator.clipboard.writeText(text).catch(()=>fallbackCopy(text))}else{fallbackCopy(text)}}function fallbackCopy(text){const temp=document.createElement("textarea");temp.value=text;document.body.appendChild(temp);temp.select();document.execCommand("copy");document.body.removeChild(temp)}