Я пытаюсь прослушать событие, которое указывает, что новая строка была создана в редакторе контента, редактируемом. Цель состоит в том, чтобы в конечном итоге показать пользователю некоторые параметры каждый раз, когда создается новая пустая строка, и каретка находится в этой строке или пользователь нажимает позицию каретки на текущую пустую строку.
В моей книге, кажется, есть четыре события, которые приведут к тому, что пользователь будет на новой строке в контентном div:
- нажмите enter
- вставка содержимого с пустой строкой в конце
- щелчок, заставляющий каретку (мигающую линию) перемещать позицию в пустую строку
- с помощью клавиш со стрелками для перехода к новой строке
Конечно, в контентной div новая строка означает разные вещи для разных браузеров, в хроме кажется, что создает теги <div><br/></div>
, но, просматривая вокруг SO достаточно, кажется, что другие браузеры могут создать <div><p></p></div>
или, возможно, <span>
теги.
Теперь я попытался это выяснить пару раз и просто должен сделать это. Действительно ли это лучший способ прослушать новые элементы, добавляемые под этим div, и/или проверить, находится ли позиция каретки в пустых тегах "новой строки". проверяя каждый раз, когда шаги каретки кажутся крайне неэффективными - есть ли лучший способ сделать это?
Подводя итог для TL;DR; люди
- Есть ли лучший способ проверить новые строки в содержимом редактируемых div?
- как я могу инициировать событие, основанное на этом эффективно?
Просто fyi это в контексте Angular, и у меня также есть jQuery (ответ может выбрать использование или не использование этих библиотек).
----- edit -----
До сих пор ответы были сосредоточены на создании новых событий "событий" и мониторинге этих событий, возможно, опрос позиции каретки - более надежный способ определить, находится ли каретка в пустой строке или нет.