Я думаю, что этот вопрос прост, но я не смог понять это. Я ударил точку остановки, используя более простое решение для получения позиции каретки в контентном div от Get caret position in contentEditable div. Я пытаюсь получить номер строки позиции каретки, и у меня есть много логики, но поскольку этот подход относится к концу одной строки так же, как относится к началу следующего, это доказано почти невозможно.Используйте Rangy Library, чтобы получить точную Caret Местоположение в contentEditable div
Итак, вместо этого я пытался использовать библиотеку rangy, чтобы получить позицию каретки, в надежде, что она правильно относится к концу строк (подсчет конца строки как один меньше, чем начало следующего ,), но я не совсем понял, как заставить его работать так, как хотелось бы. Мой код выглядит следующим образом:
var sel = rangy.getSelection();
var range = sel.getRangeAt(0);
var cursorPos = sel.focusOffset;
Это похоже на работу, когда я нажимаю войти, чтобы перейти на новую строку (позиция увеличивается на 1), но после этого caretPos снова начинается с 0 в начале каждой строки , Есть ли способ получить общую позицию курсора, которая учитывает новые строки? Чтобы быть ясным, я не спрашиваю, как получить номер строки от rangy, только позиция каретки.
Спасибо, и извините, если мне не хватает чего-то очевидного.
Извините, я должен был быть яснее. У меня уже есть логика, чтобы перейти от позиции курсора/курсора к номеру строки (это связано только с подсчетом новых строк от начала до позиции каретки.) Мне просто нужна более точная позиция каретки, на которую я надеялся, предоставлять. Это то, что я пытаюсь получить из рядового, позиция каретки, а не номер строки. Возможно ли получить позицию каретки в контентном div, который не начинается с каждой строки? – LiamD
Я отредактировал свой ответ. – Louis
Хм, хорошо. Значит, вы говорите, что Rangy не может объяснить разрывы строк? Таким образом, код, который я опубликовал, является правильным способом получить позицию каретки (игнорируя вопрос о линиях на мгновение) в контентном div? – LiamD