Краткий ответ : Вы не можете
Длинный ответ : Проблема, с которой вы столкнетесь, заключается в том, что вы сможете получить (x, y) координаты для события click на div1, но любая реализация положения каретки требует от вас зная положение каретки в контенте (количество символов, предшествующих каретке).
Чтобы преобразовать координаты (x, y) в позицию символа, вам на самом деле нужно знать, сколько символов было раньше (т. Е. Осталось в текущей строке и выше, если текст ltr).
Если вы используете шрифт фиксированной ширины, вы можете упростить задачу: сопоставить координату (x, y) с координатой (строка, столбец) в символьной сетке.
Однако вы все еще сталкиваетесь с проблемой незнания того, как переносится текст. Например:
------------------
|Lorem ipsum |
|dolor sit amet |
|consectetur |
|adipiscing elit |
------------------
Если пользователь нажимает на d в dolor , вы знаете, что символ находится на 1-й строке во 2-й строке, но без знания алгоритма переноса вы не сможете Вы узнаете, что это 13-й персонаж в «Lorem ipsum dolor sit…». И нет никакой гарантии, что такой алгоритм упаковки одинаков для всех браузеров и платформ.
Теперь, что мне интересно, зачем вам использовать 2 разных синхронизированных div
в первую очередь? Разве не было бы проще использовать только один div и установить его содержимое для редактирования, когда пользователь нажимает (или наводит курсор)?