Как получить или создать выделение или диапазон из координатной точки dom в javascript? - PullRequest
1 голос
/ 21 июля 2010

Надеюсь, это возможно, вызвав метод, который выполняется внутренним кодом браузера.Дана точка x, y в доменных координатах.(то есть можно получить относительно любого узла) в элементе, содержащем текст, который я хочу эффективно

charIndex = characterUnderPoint(textNode,nodex,nodey);

Я полагаю, если есть какая-то возможность сделать

range = xx.creatRange(node,x,y)

или

selection = xx.createSelection(node,x,y)

или

range.setAnchorToLocation(node,x,y)

и т. Д.

Пока я не могу найти ничего, что эффективно реализовывало бы то, что происходит, когда вы нажимаете, чтобы установить позицию каретки.кажется, что все методы принимают только символьное смещение.

Главным образом я хочу этого, потому что поиск путем увеличения диапазона по всем символам, чтобы проверить, находится ли точка в нем, очень медленный (это может быть двоичный поиск, но)это должно быть сделано внутри механизма компоновки в нативном коде, чтобы быть быстрым.

1 Ответ

0 голосов
/ 21 июля 2010

Нет простого способа сделать это. Range тебе не поможет. Все дело в узлах и смещениях.

...