Показать сообщение отдельно
  #1 (permalink)  
Старый 30.11.2014, 17:30
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

shim для caretPositionFromPoint (нужна новая мысль)
Привет All!

Сижу вот уже целый день, пытаюсь решить одну проблему. Нужен нормальный/корректно рабочий метод document.caretPositionFromPoint(), его ни один браузер не поддерживает (за исключением Firefox, в котором работает он кривее кривизны, поэтому будем считать что там его тоже нет).

А проблема возникла в том, что нужно определять предположительную позицию каретки над курсором (над нужными координатами) в текстовых полях, TEXTAREA/INPUT. Я начал писать некий шим для этого метода. По началу вроде все пошло норм. Писал соответственно под браузером Хром. Одним словом под webkit написать корректный метод вроде удалось.

Но вот ИЕ всех версий и ФФ, что-то мне совсем не побороть... Хоть ФФ и имеет нативную поддержку, но показывает не верные координаты каретки, если мы определяем в пределах текстового поля но не на тексте, или например если точка находиться над бордюром элемента.

Я подготовил тестовый пример, вы можете сравнить как он работает в Хроме, и как работает в ФФ... Для ИЕ там вообще нет реализации, но тоже надо будет как то его победить.

Вот пример: https://devote.github.io/tests/caret/index.html
Вот исходники: https://github.com/devote/devote.git...er/tests/caret

Если у кого есть идеи по вопросу как побороть ФФ а в идеале и ИЕ, буду очень признателен... Мои все попытки приводят к неудаче, при разных условиях использования. Работать должно так, как сейчас работает в Хроме или Сафари.

Заранее все спасибо!
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием