2014-01-04 2 views
1

A contentEditable имеет автоматическую перенос слов, создавая новую линию, когда вы достигаете ширины редактируемой области. Это здорово, но потом я разбираю содержимое этого содержимого, и мне нужно его добавить <br>, когда он это сделает. Я пробовал все, что мог, и не могу этого добиться. Любая помощь очень получена.contentEditable insert br при появлении новой строки

+1

Вы пытались заменить \ n на
? –

+0

«ContentEditable имеет автоматическую перенос слов», любой элемент html «block» без css «white-space: nowrap» работает так: –

+0

@Rob - это правда, довольно очевидная, но также и бесполезная информация, если она каким-то образом не связана с решением к моей проблеме? –

ответ

1

Это невозможно, точка переноса слов - это «усмотрение браузера» и, как таковая, подвержена различиям в размере шрифта, шрифты не установлены, механизмы рендеринга шрифтов, параметры сглаживания и т. Д. И т. Д. , так сказать, «не ваша проблема» с точки зрения браузера, и поэтому она не дает эту информацию.

Теоретически вы могли бы восстановить содержание слово в слово в JS в динамически размера и точно так же стиле DIV, и монитор, когда изменяется высота - вот где происходят новые строки. Тем не менее, это была бы дерьмовая загрузка дерьмового кода для достижения изворотливого результата.

Я не могу не чувствовать, что вы просите здесь XY-solution - если вам нужна новая линия в данной точке, пусть конечный пользователь даст им, когда захочет. Просто добавление overflow:auto;white-space:nowrap к редактируемому элементу заставляет их. Example here.

+0

Я думаю, может быть, нажатие клавиши проверьте, не входит ли и если высота увеличилась, и вставьте <br> в той же точке - любые идеи по достижению этого? –

+0

Спасибо Niels - я отключил обертку на div - сделайте, чтобы пользователь ударил, что введите ответ. Спасибо, что заставил меня думать нестандартно - или, скорее, заставить моих пользователей работать внутри коробки. –

Смежные вопросы