У меня странный случай для contenteditable
элементов в HTML. У нас есть форматированный текстовый редактор, в который клиенты загружают готовые шаблоны (нами), а затем могут изменять этот шаблон по своему усмотрению (в основном).
Части наших шаблонов помечены как недоступные для прямого редактирования, но все же могут быть удалены и т. д. Однако, похоже, возникает проблема, когда один такой элемент является первым элементом в строке (сразу после тега <br/>
), а пользователь нажимает DEL
в строке выше. Поскольку это contenteditable=false
, браузер, кажется, удаляет не <br/>
, а весь нередактируемый диапазон.
Пример HTML такой
<div contenteditable=true>
<span>blah blah blah</span><br/>
<span contenteditable="false">You cant edit this value directly</span>
</div>
Если пользователь помещает курсор после blah blah blah
и нажимает DEL
, удаляется весь следующий редактируемый контент, а не разрыв строки.
Есть ли способ, javascript или иным образом, исправить это поведение?
Я дурачился, пытаясь определить положение курсора (используя rangy) и вставляя временные пробелы и т. д., но я не могу заставить его иметь желаемое поведение, а именно то, что нередактируемый тег поднимается до предыдущего линия.
Мы ограничили использование редактора только Chrome, поэтому не нужно беспокоиться о IE или FF.
<br/>
частью вашего шаблона? Если да, то не могли бы вы просто использовать 3div
вместо<br/>
? - person Lea Hayes   schedule 26.07.2012