Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Получение позиции текста по координатам (https://javascript.ru/forum/events/14872-poluchenie-pozicii-teksta-po-koordinatam.html)

traa 04.02.2011 21:03

Получение позиции текста по координатам
 
Собственно сабж.
Есть координаты, x и y начала текста и координаты x и y конца текста.
Возможно ли по этим координатам определить позицию начала и конца текста?

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

dmitriymar 04.02.2011 21:50

Цитата:

Сообщение от traa
Есть координаты, x и y начала текста и координаты x и y конца текста.
Возможно ли по этим координатам определить позицию начала и конца текста?

зачем определять то что и так знаешь уже?

traa 04.02.2011 21:54

Вы не совсем поняли. Определить нужно позицию текста для того, чтобы с текстом можно было произвести хоть какие-то операции.

dmitriymar 04.02.2011 22:53

..... Действительно не понимаю. можно определить в каком элементе находится текст(как явно-описать какой сценарий нужно выполнить если над опр. элементом произошло событе так и не явно-определить сначала над каким элементом произошло событие а потом решить какое действие нужно -не нужно в зависимости от элемента).чтобы потом производить действие над и элементом и соответственно со всем что в него вложено.
http://javascript.ru/tutorial/events...entx-y-pagex-y
и прочитал твою пред тему- способ как просто получить срдержимое-тот же текст
Свойство innerHTML устанавливает или получает всю разметку и содержание внутри данного элемента.
var contents = elem.innerHTML
elem.innerHTML = '<p>test!</p>
P.S. о том что innerHTML можно получить содержимое элемента-тега узнал вчера.до этого нигде об этом ни слова не встречал

traa 05.02.2011 02:21

Еще раз объясняю. У тебя есть координаты квадрата допустим. Четыре точки a,b,c,d, по две координаты(x и y) на каждую точку.
Загружается страница. Накладываем наш виртуальный квадрат на страницу по координатам. Получаем внутри этого квадрата какие-то элементы, текст, еще что-то.
Вопрос. Можно ли определить, ЧТО там за элементы?

А по поводу моей предыдущей темы, - не все так просто, иннерХТМЛ там уж точно не работал, советую попробовать результат этой функции потестировать в консоли, уж такие очевидные варианты я пробовал сразу. Аппенд результата этой функции, например, нельзя делать в окружении тэгов (к примеру document.body.append('<div>'+result+'div'); делать нельзя)
Но не будем отвлекаться. Вопрос теперь поставлен более точнее?

dmitriymar 05.02.2011 11:41

контейнер и получить дочерние элементы к нему.
Цитата:

Сообщение от traa
иннерХТМЛ там уж точно не работал, советую попробовать результат этой функции потестировать в консоли, уж такие очевидные варианты я пробовал сразу

он возвращает текстовую строку и с ней следует работать как с текстовой

traa 05.02.2011 12:50

Цитата:

Сообщение от dmitriymar (Сообщение 91195)
контейнер и получить дочерние элементы к нему.
он возвращает текстовую строку и с ней следует работать как с текстовой

Я уже достаточно пояснил по теме топика? У вас будут какие-то соображения по этому поводу?
Давайте вы все замечания по коду будете высказывать в нужной теме?
Попробуйте поиграться с тем кодом, может тогда поймете, о чем я именно.

dmitriymar 05.02.2011 13:02

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

traa 05.02.2011 13:55

Я обязательно учту это в дальнейшем. Нетривиальный вопрос, возможно.
Цитата:

Сообщение от dmitriymar (Сообщение 91202)
.....тяжело говорить с человеком на разных языках. особенно когда он планирует сделать открытие и получить нобелевскую премию....
нет более глухого чем тот кто не хочет слышать....

Давайте не углубляться в риторику, мне абсолютно нет дела до чьих-то философских потуг на форуме яваскрипта.

Цитата:

Сообщение от dmitriymar (Сообщение 91202)
один из вариантов
можно отслеживать скрол ,

Причем здесь скролл?

Цитата:

Сообщение от dmitriymar (Сообщение 91202)
а разметку всех элементов страницы создавать динамически- и заносить их массив потом сравнивать с координатами скрола и области выделенной и находить те что попадают в область

Не совсем понимаю. Занесем мы всю разметку в массив, - и что дальше? Как это поможет определять хотя бы примерные координаты?

Цитата:

Сообщение от dmitriymar (Сообщение 91202)
есть и другие варианты

Этот вариант не оценил, извините. Может, если Вы правильней сформулируете мысль, я пойму, о чем речь.

Цитата:

Сообщение от dmitriymar (Сообщение 91202)
ну а формулировать мысли стоит правильно и сразу -то получить текст из элемента теперь уже получить элементы из выделеной области

Мне не нужно получать текст из элемента, я этого нигде не говорил, мне нужно получить текст, исходя из координат. Максимум, о чем я говорил - это позиция текста по координатам

dmitriymar 05.02.2011 14:28

Цитата:

Сообщение от traa
Не совсем понимаю. Занесем мы всю разметку в массив, - и что дальше? Как это поможет определять хотя бы примерные координаты?

стили сss координаты для контейнеров

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


Часовой пояс GMT +3, время: 09:29.