textarea - возможно ли уточнить место клика?
Вот есть текст в textarea.
Сам элемент не в фокусе. Когда пользователь кликает на него курсор появляется на месте клика. Это место может быть в середине текста, в середине слова - где угодно! возможно ли как то узнать куда конкретно кликнул пользователь? |
dmitry111,
Можно узнать текущую позицию курсора в тексте. Подробнее здесь Как-то так: function getCaretPos(obj) { if(obj.selectionStart) return obj.selectionStart;//Gecko else if (document.selection)//IE { var sel = document.selection.createRange(); var clone = sel.duplicate(); sel.collapse(true); clone.moveToElementText(obj); clone.setEndPoint('EndToEnd', sel); return clone.text.length; } return 0; } |
спасибо!
|
Поработал с этой функцией, это конечно подходит, но не совсем то.
selectionStart определяет место где был курсор! То есть пользователь поставил курсор - функция показала не текущие координаты, а те которые были Вот пример: <!DOCTYPE HTML> <html> <head> </head> <body> <textarea rows="10" cols="45">Узнать координаты курсора</textarea> <script> var elem = document.getElementsByTagName("textarea")[0]; elem.onmousedown = function () { var start = elem.value.slice(0, elem.selectionStart); var end = elem.value.slice(elem.selectionStart, elem.value.length); alert(start); alert(end); }; </script> </body> </html> Если при первом запуске кликнуть в середину текста, то алерты выдадут ничего и весь текст! а как сделать так чтобы координаты определялись текущие, которые получились когда элемент приобрел фокус? Или так нельзя? |
onmouseup, onclick
|
bes,
хаха, странное поведение) действительно работает! Спасибо! |
а хотя вроде бы разобрался.
Элемент еще не получает фокус при onmousedown |
Часовой пояс GMT +3, время: 02:30. |