Если посмотреть на стандарты, то похоже, что это действие - способ, которым оно должно обрабатываться.Блоки разбиваются, когда на клавише ввода не установлен модификатор, а <br>
используются при нажатии Shift.[ Источник ].
Тем не менее, это не решит вашу проблему, так что давайте работать над этим.Эта строка должна делать
document.execCommand('insertBrOnReturn', false, true);
Установите ее так, чтобы при нажатии клавиши return она вставляла только тег <br>
.Это поддерживается только FF , поэтому оно не должно влиять на IE.Однако не знаю о других браузерах.
Примечание: Если пользователь нажимает Введите второй раз, ничего не печатая, он создает новый тег абзаца, независимо от того,какие.Чтобы предотвратить это, вы можете перехватить Enter с помощью события keypress
и остановить его, или вы можете вставить в
перед тем, как продолжить с событием (что я бы порекомендовал).
Сложным для вас с этой запиской является проверка состояния элемента на keypress
.Ленивое решение (и то, которое я бы порекомендовал, если важно не делать этого), состоит в том, чтобы просто вставить его перед каждым Enter ключом.Если вы хотите сделать это по-другому, я бы проверил .innerHTML
для элемента и увидел бы, если последние несколько символов (без обрезки содержимого) равны <br/>
(так что, возможно, совпадение с регулярным выражением /\<br\s?\/?\>$/
).