Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как распознать текст? (https://javascript.ru/forum/misc/1447-kak-raspoznat-tekst.html)

monach79 20.07.2008 18:53

Как распознать текст?
 
Как с помощью яваскрипт узнать какое человек выбрал слово на странице?
подругому:
Ести куча текста на странице. Нужно узнать какое слово человек выбрал (причем как можно выбрать: Просто мышь навел, выделил,кликнул).?

Жду уточняющих вопросов.
Спасибо.

чето молчание....... хорошо. Сдругой стороны зайдем:
Как гугль делат в своих переведенных страницах так, чтобы при подведении мышки к фразе, фраза выделяется цветом?

Snipe 21.07.2008 08:04

Вам, наверное, имеет смысл поковыряться в "Орфографии на «Куроводстве»".

monach79 21.07.2008 09:27

товарищ Кандидат Javascript-наук у вас по теме есть что ответить?

Kolyaj 21.07.2008 09:35

товарищ Новичок на форуме, а вы всегда хамите, прося о помощи?

Цитата:

Сообщение от monach79
Как гугль делат в своих переведенных страницах

Дык загляните в код этих страниц.

monach79 21.07.2008 10:09

Цитата:

Сообщение от Kolyaj (Сообщение 3759)
товарищ Новичок на форуме, а вы всегда хамите, прося о помощи?


Дык загляните в код этих страниц.

Нет не всегда. Не все же кандитаты правильно? То что я неудачно сформулировал мысль не повод отправлять меня в школу на переучивание.

Заглянул. Ничего. Загрузка из фреймов.....
Не думал я что вопрос не такой простой......

Kolyaj 21.07.2008 10:56

Цитата:

Сообщение от monach79
Не думал я что вопрос не такой простой

Вопрос простой, непонятна задача.
Нужно выделять одно слово или произвольный текст?

monach79 21.07.2008 11:04

весть текст нужно что бы мог выделятся. Но не весь сразу, а по одному слову. Тоесть подводишь мышку к этому слову- оно выделяется(только одно), но что бы с каждым словом на странице такое происходило....
Ну в самом деле, не в span же каждое слово заключать?

Kolyaj 21.07.2008 11:08

Цитата:

Сообщение от monach79
Ну в самом деле, не в span же каждое слово заключать?

А в чем проблема? Только, разумеется, не руками, а скриптом. И не на сервере, а уже в браузере.

monach79 21.07.2008 11:39

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

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

Андрей Параничев 21.07.2008 12:48

monach79,
Вся сложность в том, что обычный текст (точнее слово в тексте) не может ловить и обрабатывать события мыши. Возможно вы сможете решить задачу, воспользовавшись следующим алгоритмом:
1) При наведении мыши на блок искать самый ближайший родитель к тексту, который находится под курсором.
2) Обрамить все слова какими-либо тегами, например <span>.
3) Ловить событие на этих <span> таким образом определяя слово, которое в данный момент под мышью.

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

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

monach79 21.07.2008 13:03

Цитата:

Сообщение от Андрей Параничев (Сообщение 3768)
2) Обрамить все слова какими-либо тегами, например <span>.
3) Ловить событие на этих <span> таким образом определяя слово, которое в данный момент под мышью.

Это понятно. Неохота перегружать страницу парами <span> на каждое слово. Да еще и онмаусовер. При большом кол-ве текста очень тяжелая страница будет.

Цитата:

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

Я никогда с этим не сталкивался(вернее думал что все ограничено лишь ОнСелектом). А вот буквально за 10 мин до этого сообщения мне на другом форуме порекомендовали порыть в направлении "document.selection createRange ". Как раз этим занимаюсь. Может это как раз то, что я ищу.

Цитата:

Сообщение от Андрей Параничев (Сообщение 3768)
Кстати, если вы еще задумываетесь о том, где нужно решать задачу - на сервере или на клиенте, значит вы еще не полностью сформулировали задачу. Какая работа должна происходить над выделенными словами?

Думал! На сервере однозначно! (или я думаю что такое только на сервере возможно:))
При выборе слова на странице (как раз здесь я и занимаюсь поиском оптимального алгоритма выбора слова пользователем), всплывает модальное окно, а туда загружается....эээээ ну скажем перевод на другой язык. Возможно ли решить такую задачу на клиенте?

Snipe 21.07.2008 13:19

Цитата:

Сообщение от monach79 (Сообщение 3757)
товарищ Кандидат Javascript-наук у вас по теме есть что ответить?

Посмею уточнить, Вы посмотрели, что за "орфография на Куроводстве"?
Мне кажется, что Вы просто не так меня поняли и воспринили мое предложение как "наезд" на Вашу грамотность, чего ни в коем случае не было.

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

Сама задачка не кажется мне тривиальной, поэтому я не готов написать самостоятельно к ней код, а вот помочь советом где можно поискать - пожалуйста. Так что мое предложение как раз по теме. ;)

monach79 21.07.2008 13:22

Ох простите , я действительно не так вас понял. Я думал это наезд:).
Схожу гляну.

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


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