У меня есть contenteditable div, который содержит типичный редактор wysiwyg html (жирный шрифт, привязки, списки).
Мне нужно определить, находится ли текущий курсор, onKeyDown, в начале и в конце div. Причина этого заключается в том, что на основе позиции курсора и нажатой клавиши я могу захотеть объединить этот div с предыдущим div в обратном пространстве или создать новый следующий div для ввода.
Я занимался диапазонами, но когда вы работаете с html внутри элемента, все становится довольно сложным.
Я надеюсь, что я должен упустить какое-то простое решение.
Есть ли относительно простой способ определить это - я открыт для использования библиотеки, такой как Rangy.
Спасибо!
Изменить: я что-то думаю в этих строках:
$('.mycontenteditable').bind('keydown', handle_keydown)
handle_keydown = function(e) {
range = window.getSelection().getRangeAt(0)
start_range = document.createRange()
start_range.selectNodeContents(this.firstChild)
start_range.collapse(true) // collapse to start
is_start = start_range.compareBoundaryPoints(Range.START_TO_START,range)
end_range = document.createRange()
end_range.selectNodeContents(this.lastChild)
end_range.collapse(false)
is_end = end_range.compareBoundaryPoints(Range.END_TO_END,range)
}
Я собираюсь столкнуться с любыми нечетными проблемами с чем-то вроде этого?