Имам странен случай за 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