В настоящее время в Firefox, когда я нажимаю return в contenteditable абзаце, он вставляет тег br, создает новый тег абзаца, а затем помещает тег br в этот новый абзац. Я хотел бы изменить поведение так, чтобы
- Shift + enter = br tag (это уже значение по умолчанию)
- Enter дублирует текущий элемент, будь то p, li, h1..etc, и удаляет любые конечные или ведущие (спецификация W3C требует некоторых событий, которые я мог бы использовать, но я совсем не уверен, как их реализовать.
- Backspace в начале элемента объединит его с предшествующим братом, если он существует
- Удаление в конце элемента объединит его со следующим родным братом, если он существует.
Я попытался перехватить нажатие клавиш и проверить наличие клавиш возврата, удаления и возврата, но не могу точно определить текущее положение каретки или предотвратить поведение по умолчанию, если я переопределяю его.
Мне было бы очень полезно, если бы кто-нибудь там знал, как ..
Возможно, кто-то даже знает о пользовательском агенте (браузере), который уже ведет себя таким образом. Это приемлемо.
Спасибо
Daniel