Атрибут contenteditable тега <data>


Описание

Атрибут contenteditable позволяет сделать содержимое тега <data> редактируемым пользователем напрямую в браузере. При этом атрибут value остаётся неизменным, что может быть полезно для создания интерактивных интерфейсов.

Ограничение: Изменения в редактируемом содержимом не обновляют автоматически атрибут value.
Пример использования:
<div> Редактируемое значение: <data value="initial_value" contenteditable="true">Нажмите чтобы изменить</data> </div> <script> document.querySelector('data[contenteditable]').addEventListener('blur', function() { console.log('Видимый текст:', this.textContent); console.log('Машинное значение:', this.value); }); </script>

Значения атрибута:

Значение Описание
true Элемент доступен для редактирования
false Элемент не редактируется (по умолчанию)
plaintext-only Только текст без форматирования (экспериментальное)

Практическое применение:

<style> .editable-data { border-bottom: 1px dashed #666; padding: 0.2em; min-width: 50px; display: inline-block; } .editable-data:focus { outline: 2px solid #4285f4; background-color: #f0f7ff; } </style> <div> Настройка: <data value="default_setting" class="editable-data" contenteditable="true">значение по умолчанию</data> </div>

Обработка изменений:

<data id="editableValue" value="123" contenteditable="true">Сто двадцать три</data> <script> const editableElement = document.getElementById('editableValue'); editableElement.addEventListener('input', function() { console.log('Текст изменён:', this.textContent); // Можно синхронизировать с value при необходимости }); editableElement.addEventListener('blur', function() { if(!this.textContent.trim()) { this.textContent = 'Сто двадцать три'; // Восстановление при пустом значении } }); </script>

Ограничения и особенности:

  • Атрибут value не обновляется автоматически
  • Для сохранения изменений требуется JavaScript
  • Поддерживается всеми современными браузерами
  • Может содержать HTML-разметку при редактировании
  • Лучше работает с инлайновыми элементами

Рекомендации по использованию:

  1. Всегда добавляйте визуальные стили для редактируемых элементов
  2. Обрабатывайте события для сохранения изменений
  3. Валидируйте вводимые данные
  4. Для сложных редакторов используйте специализированные библиотеки
  5. Учитывайте доступность (добавляйте подсказки для пользователей)

Примечание: Хотя технически возможно сделать элемент <data> редактируемым, семантически это может противоречить его основному назначению. Для сложных случаев редактирования данных лучше использовать специализированные элементы ввода.