Консультация № 95517
18.07.2007, 08:58
0.00 руб.
0 3 3
Здравствуйте, уважаемые эксперты!

Вопрос следующий: каким образом можно реализовать (с помощью языка JavaScript) следующее: при щелчке на некотором слове текста в окне браузера (IE, NS, Mozilla, Opera - во всех этих браузерах) должна появляться всплывающая подсказка с определенным текстом.
Проблема в том, что для ссылок это можно сделать наведением курсора, однако меня интересует именно простой текст и подсказка, которая возникала бы именно по щелчку.

Приветствуется ответ в виде примера кода на JavaScript.

Заранее огромное спасибо.

Обсуждение

Неизвестный
18.07.2007, 10:34
общий
это ответ
Здравствуйте, Luxuriant Alex!
Насколько я знаю в Яваскрипте можно получить только элемент, по которому был произведен клин. Например если это ячейка таблицы <td> или же <div>. Получить же на какую часть текста внутри этого элемента произошел клик - помоему нельзя. Так что скорее всего придется все необходимые слова заключать в дивы. Каждое отдельно.
И уже при клике на него - выводить нужную подсказку.

Приложение:
<div id=‘pynktyalnost_div‘ onclick=‘ShowTip("pynktyalnost")‘>пунктуальность</div><script>function ShowTip(value) {switch (value) {case "pynktyalnost":... собственно код выводаbreak;}}</script>
давно
Старший Модератор
31795
6196
18.07.2007, 12:58
общий
это ответ
Здравствуйте, Luxuriant Alex!

Смотрите приложение(код для IE).
Вам необходимо пожертвовать любым тегом типа <b>B</b> или <b>I</b> и установить общий стиль для них (если таких слов будет много) для <b>B</b> указано в приложении, для <b>I</b> - <b>style="font-style:normal"</b>, вслучае если тег нужно использовать по прямому назначению то Вы всегда можете изменить стиль на месте (в приложении именно так и делается)
Для совместимости с другими обозревателями Вам необходимо определить его на клиентской машине.
<b>if (document.all){//IE
docs="document.all"
styles=".style"
html=""
Yposition="event.y"
Xposition="event.x"
}else{
if(document.layer){//NS
docs="document"
styles=""
html=".document"
Yposition="e.pageY"
Xposition="e.pageX"
}
}</b>
после этого с помощью <b>X=eval(docs+‘.body.clientWidth‘)</b> Вы сможете получить ширину экрана.
Удачи Вам!

Приложение:
<html><head><title>q95571.html</title> >function asdf(){myMess.innerHTML=arguments[0] myMess.style.background=‘#00ff00‘ myMess.style.left=event.clientX+10 myMess.style.top=event.clientY+10 myMess.style.visibility=‘visible‘ idTime=setTimeout(‘fdsa();‘,5000)} function fdsa(){myMess.style.visibility=‘hidden‘ clearTimeout(idTime)} </script></head><body>Вопрос следующий: <b onclick="asdf(‘вот таким‘)" style="font-weight:normal">каким</b> образом можно реализовать<div id="myMess" style="width:100;height:100;visibility:hidden;position:absolute"></div></body></html>
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Неизвестный
18.07.2007, 15:19
общий
это ответ
Здравствуйте, Luxuriant Alex!
По адресу http://htmlcoder.visions.ru/JavaScript/?11 расположена статья Всплывающая подсказка (tooltip) с использованием DOМ с приложенным JS кодом. В данном примере подсказка всплывает при наведении курсора мыши на слово (без ссылок - P. S., P. P. S., Р.P. P. S.
Для того, чтобы подсказка всплывала при нажатии кнопки мыши, меняем в JS коде(файл 1.txt) document.onmousemove на document.onmousedown.
Работает в IE, opera, firefoxe (проверял)
Форма ответа