Реализовать новую строку смена нажатием клавиши «Ввод» - PullRequest
0 голосов
/ 04 мая 2018

Я использую contenteditable, где я из-за некоторых бизнес-сценариев, мне нужно отслеживать новые разрывы строк <br>. Чтобы справиться с этим, я сделал следующие шаги:

  1. При keydown событии я прекратил событие ввода «key» (keyCode = 13)
  2. При keyup событии «Enter», я запускаю execCommand как $window.document.execCommand('insertHTML',true,'<br class="new">');

Это работает как заклинание, если я не в конце линии.

Задача

  • Когда курсор находится в конце строки, сначала введите нажатие клавиши вставляет <br class="new">, но смена курсора не происходит, хотя html вставлен.
  • Когда я снова нажимаю , введите , ничего не происходит. Нет innerHTML вставлено.

Вот этот планер . Пожалуйста, проверьте консоль, чтобы увидеть HTML

Отлично работает, если перед курсором есть какой-либо символ

Надеюсь, я четко объяснил свою проблему. Любые предложения, пожалуйста

1 Ответ

0 голосов
/ 04 мая 2018

Хотя это выглядит как обходной путь, но вы можете использовать &nbsp;

$window.document.execCommand('insertHTML',true,'<br class="new">&nbsp;');

Это будет служить вашей цели с пробелами, которые, я думаю, можно игнорировать.

...