Могу ли я в Firefox определить, какое случайное слово в блоке, заполненном словами, зависает мышка?

Например, если у меня есть:

<div> Lorem ipsum dolor sit amet, conctetuer adipiscing elit. Curabitur urna felis, convallis quis, placerat in, elementum quis, libero. Nam quis lacus. Vivamus rhoncus quam et metus. Praesent et velit eget sem vestibulum volutpat. Целое число sed risus. Целое число quis libero id diam bibendum luctus. Donec eleifend. Curabitur ut sem. Preesent at est ac sem roncus interdum. Etiam arcu nulla, molestie dictum, mollis sed, imperdiet sit amet, neque. Fusce at nibh sit amet mi eleifend aliquam. Nunc tristique scelerisque risus. Praesent et velit id magna volutpat volutpat. </div>

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

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
287
4

Ответы 4

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

Необоснованный способ включает вычисление по координатам x, y мыши, а затем подсчет во внутренней карте абзаца. Это, конечно, сломается, когда следующий пользователь использует другой шрифт / размер.

Посмотрите эти надоедливые всплывающие окна с рекламой intellitag, которые появляются при наведении курсора на ключевое слово. Вы заметите, что они добавляются после загрузки страницы с помощью javascript, который читает каждое слово и заменяет важные слова окруженными промежутками.

Подсчет во внутренней карте абзаца? Я не уверен, что понимаю, что вы имеете в виду ...

Jon Galloway 30.11.2008 10:06

О, возможно вы имеете в виду, если бы я контролировал сервер. Нет, я ищу простой способ выбирать и сохранять предложения при просмотре веб-страниц. Все, что окажется лучшим пользовательским интерфейсом, будет использоваться в одном или нескольких сценариях Greasemonkey / Chickenfoot / надстройке Firefox.

Eggs McLaren 30.11.2008 10:24

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

Karl 30.11.2008 18:17

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

Jon Galloway 30.11.2008 20:16

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

Это может быть основано на выделенном тексте, а не на наведении указателя мыши.

EndangeredMassa 30.11.2008 06:18

Это - при изменении выбора появляется кнопка.

strager 30.11.2008 06:19

Это должно быть тяжело, но работает (jQuery):

// highlight every word found in a <p>
$("p").each(
    function () { 
        var content = "";    
        var words = $(this).html().match(/\W*\w+/g) ;
        var in_tag = false ;
        for (i in words) {
            if (words[i].match(/^\W*</)) {
                in_tag = true ;
            }
            if (words[i].match(/^\W*>/)) {
                in_tag = false ;
            }
            if (in_tag) {
                content += words[i];
            } else {
                content += words[i].replace(/(\w+)/,'<span class = "word">$1</span>');
            }
        }
        $(this).html(content);
    }
);

// example event

$(".word").mouseover(function() { $(this).css("background-color","#FF0") });
$(".word").mouseout(function() { $(this).css("background-color","") });

Вы можете заменить $ ("p") на $ ("# mydiv").

Обновлено: Я написал, что есть теги с ошибками, но теги здесь не проблема; проблема в том, что этот код не справляется с сущностями HTML. На текущей странице, например, при обработке & lt; div & gt ;, "gt" и "lt" преобразуются, как будто они сами по себе слова, что действительно неверно. Регулярные выражения должны быть немного сложнее, чтобы исправить эту ошибку.

Другие вопросы по теме