|
25.03.2013, 15:35
|
Интересующийся
|
|
Регистрация: 28.11.2012
Сообщений: 27
|
|
Координаты выделенного слова или координаты после двойного нажатие на слово
Задача состоит в том, что мне нужно после двойного нажитя на слово вивести над ним окошко.
По идеи мне нужно узнать координаты этого слова...
Пробовал сделать через createRange, но он по ходу не на всех браузерах работает
|
|
25.03.2013, 16:10
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
Сообщение от olexand777
|
Задача состоит в том, что мне нужно после двойного нажитя на слово вивести над ним окошко.
По идеи мне нужно узнать координаты этого слова...
Пробовал сделать через createRange, но он по ходу не на всех браузерах работает
|
а координаты курсора, при двойном клике, значит не находятся над словом , и не входят в диапазон занимаемый словом?
|
|
25.03.2013, 16:37
|
Интересующийся
|
|
Регистрация: 28.11.2012
Сообщений: 27
|
|
Канечно входять, но я же не знаю сам размер текста, его длину...
Мне нужно чтобы ококшко было четко над текстом...
У меня уже по сути задача такого, чтобы окутать слово, по которому я кликунул, в какой-то <span>. Помогите уже єто реализовать...
|
|
25.03.2013, 19:04
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
Сообщение от olexand777
|
У меня уже по сути задача такого, чтобы окутать слово, по которому я кликунул, в какой-то <span>. Помогите уже єто реализовать...
|
1 тебе никто не обязан.
получи выделенный текст
найди его в документе регуляркой, или методом поиска подстроки
Замени найденное, тем что искал ,обёрнутым в span
Получи верхнюю границу span
всё
Последний раз редактировалось dmitriymar, 25.03.2013 в 19:06.
|
|
25.03.2013, 19:27
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
В хроме работает:
<!DOCTYPE html>
<style>
span{
background: rgba(214, 255, 0, 0.67);
}
</style>
<p>Кликни по любому слову!</p>
<script>
document.ondblclick = function() {
var selection = getSelection();
if (selection.type == 'Range' && selection.rangeCount > 0) {
var range = selection.getRangeAt(0);
range.surroundContents(document.createElement('span'));
}
}
</script>
Кстати в нем также есть getBoundingClientRect
|
|
25.03.2013, 20:48
|
Интересующийся
|
|
Регистрация: 28.11.2012
Сообщений: 27
|
|
Спасибо большое...
Последний раз редактировалось olexand777, 28.03.2013 в 14:00.
|
|
25.03.2013, 21:14
|
Интересующийся
|
|
Регистрация: 28.11.2012
Сообщений: 27
|
|
danik.js,
Я уже задолбал вас, извинните пожалуйста, но хочу еще спросить есть что-то что противоположно surroundContents?
|
|
25.03.2013, 21:32
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Сообщение от olexand777
|
есть что-то что противоположно surroundContents?
|
Это как?
|
|
25.03.2013, 23:14
|
Интересующийся
|
|
Регистрация: 28.11.2012
Сообщений: 27
|
|
danik.js,
что бы после того як я все сделаю... убрать span, который утворился там...
|
|
26.03.2013, 07:25
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Что-то типа
span.parentNode.replaceChild(span, document.createTextNode(span.textContent || span.innerText || ''))
Может быть можно иначе сделать.
|
|
|
|