Надеюсь, это возможно, вызвав метод, который выполняется внутренним кодом браузера.Дана точка x, y в доменных координатах.(то есть можно получить относительно любого узла) в элементе, содержащем текст, который я хочу эффективно
charIndex = characterUnderPoint(textNode,nodex,nodey);
Я полагаю, если есть какая-то возможность сделать
range = xx.creatRange(node,x,y)
или
selection = xx.createSelection(node,x,y)
или
range.setAnchorToLocation(node,x,y)
и т. Д.
Пока я не могу найти ничего, что эффективно реализовывало бы то, что происходит, когда вы нажимаете, чтобы установить позицию каретки.кажется, что все методы принимают только символьное смещение.
Главным образом я хочу этого, потому что поиск путем увеличения диапазона по всем символам, чтобы проверить, находится ли точка в нем, очень медленный (это может быть двоичный поиск, но)это должно быть сделано внутри механизма компоновки в нативном коде, чтобы быть быстрым.