Безпечні маніпуляції DOM
Правила
- •Селектори: Використовуй
document.getElementByIdдля ID (швидкодія) таquerySelectorдля класів. - •Модифікація контенту:
- •ЗАБОРОНЕНО:
innerHTMLпри вставці даних користувача (ризик XSS). - •РЕКОМЕНДОВАНО:
textContentдля тексту,classListдля стилів. - •Для створення складних структур використовуй
document.createElementтаappendChildабо шаблони<template>.
- •ЗАБОРОНЕНО:
- •Події:
- •Використовуй іменовані функції для обробників подій, щоб мати можливість їх видалити (
removeEventListener). - •Застосовуй делегування подій (Event Delegation) для списків та динамічних елементів.
- •Використовуй іменовані функції для обробників подій, щоб мати можливість їх видалити (
Доступність (WCAG 2.2)
- •Dragging Movements (2.5.7): Якщо ти імплементуєш Drag-and-Drop (наприклад, сортування списку), ти ОБОВ'ЯЗКОВО повинен додати кнопки "Вгору"/"Вниз" або контекстне меню для зміни порядку без перетягування (single pointer alternative).
Шаблон безпечного слухача
javascript
const btn = document.getElementById("action-btn");
if (btn) {
btn.addEventListener("click", handleClick);
}
function handleClick(event) {
// логіка
}