Имя: Пароль:
IT
Жизнь форума
Скрипт, отображающий сообщение по ссылке вида: (123)
,
0 Evil-Wisp
 
02.12.10
07:00
Благодарю товарища y88 за его скрипт в
OFF: Персональный скрипт ToolTip;
Но он у меня не работает:) точнее не так как нужно. Он затирает сообщения некоторых пользователей, на которые ссылаются:

http://s007.radikal.ru/i301/1012/21/cff6cb0cfb79.jpg
http://s008.radikal.ru/i304/1012/89/8286f0174518.jpg

Причем некоторые затирает, некоторые нет. Opera 10.63.
В iexplorer 6 работает.
Если код можно легко поправить, то я буду очень признателен:)
Да и скрипт полезный, получит распространение, если автор конечно не против.
1 hd1
 
02.12.10
07:38
в актуальном ФФ тоже прячет
2 Evil-Wisp
 
02.12.10
09:02
up
3 Venom
 
02.12.10
09:44
В хроме тоже также прячет
4 Evil-Wisp
 
02.12.10
10:48
В IE8 работает. Блин скрипт хороший, но разобраться в нем сложно:)
5 Evil-Wisp
 
02.12.10
12:27
Помогите хоть протестить.
Первое - вроде не сохраняется часть сообщения, стоящая после ссылки (2), если на твое сообщение ссылаются. Т.е. остается начало сообщения до ссылки и ссылка на того, кто ссылается на тебя.
Сошлитесь на это сообщение пжлста:)
6 Mefistophel
 
02.12.10
12:31
123 (5) 321
7 Evil-Wisp
 
02.12.10
12:36
Это получилось все сообщение видно при наведении на (5).
(6) Двойная ссылка
8 Mefistophel
 
02.12.10
13:09
Ну как там? Мож подсказать чего?
9 Evil-Wisp
 
02.12.10
16:38
(8) Подсказать конечно:) тут еще баг - при наведении на 6 7 в пятом сообщении показывается одно и тоже (сообщение 2). Я java script не знаю, только отдаленно нашел, где может быть ошибка.
Ветку надо было в IT ставить.
10 hd1
 
03.12.10
05:48
(9) такой пойдет?
$('a.interlink').hover(
 function () {
   $(this).append($('<div id="myid" style="color:green;background:#EFFFF7;border: 1px solid black;">'+$('#message_'+$(this).html()).html()+'</div>'));
 },
 function () {
   $(this).find('#myid').remove();
 }
);
11 Evil-Wisp
 
03.12.10
07:11
(10) Он работает, но в ссылке на ссылку отображает весь текст в одной колонке, шириной один символ, т.к. пытается создать окно вправо от ссылки и прижимает все к краю экрана.
12 hd1
 
03.12.10
07:15
(11) в каком браузере? скрин кинь. В ие8 и мозилле норма.
13 smaharbA
 
03.12.10
07:22
javascript:function x(){document.getElementById("message_9").innerHTML=""};x();
14 hd1
 
03.12.10
07:28
(10) в ИЕ6 и не пытается
15 hd1
 
03.12.10
07:30
(14) работает, если безопасность понизить
16 Evil-Wisp
 
03.12.10
07:35
17 hd1
 
03.12.10
07:37
(16) а, эти линки, я на них вообще не пытался наводить )
18 Evil-Wisp
 
03.12.10
07:40
(17) Ну а так спс большое. Только в том скрипте еще можно заголовки тем читать и картинки смотреть:) Может можно заменить функцию вывода текста сообщения на твою, а остальное оставить?
19 hd1
 
03.12.10
08:09
(18) не охота в том скрипте копаться
20 Evil-Wisp
 
03.12.10
08:50
Проблема возможно в этих трех строчках

// 1. (<a href='#0' style='text-decoration:none'>0</a>)
   //    (<a href='topic.php?id=444509&amp;page=3#261' style='text-decoration:none'>261</a>)
   msg_text = msg_text.replace(/\(<a .*?>(\d+)<\/a>\)/gi, '<span onmouseover="tooltip.scheduleShowTip(this,re_html,$1)" onmouseout="tooltip.scheduleHideTip(this)"><a href=#$1 style="text-decoration:none">($1)</a></span>')

   // 2. <a rel="nofollow" href="#2" class="answer-link interlink" title="BuHu" rev="#218">218</a>
   msg_text = msg_text.replace(/<a .*?>(\d+)<\/a>/gi, '<span onmouseover="tooltip.scheduleShowTip(this,re_html,$1)" onmouseout="tooltip.scheduleHideTip(this)"><a href=#$1 class="answer-link">($1)</a></span>')

   // 3. добавляем к URL картинок [?] +tooltip --------------------------
   // <a href="http://*.jpg" target="_blank" >http://*.jpg</a>;
   msg_text = msg_text.replace(/(<a href="(http:[^ ]*\.(jpg|gif|png))".*?<\/a>)/ig, '$1 <span style="COLOR: #ccc; CURSOR: hand" onmouseover="tooltip.scheduleShowTip(this,img_view,\'$2\')" onmouseout="tooltip.scheduleHideTip(this)">[&#191;]</span>')

Они заменяют текст сообщения на текст сообщения с tooltip'ами, и видимо неправильно работают
21 Mefistophel
 
03.12.10
08:59
// 2. <a rel="nofollow" href="#2" class="answer-link interlink" title="BuHu" rev="#218">218</a>
  msg_text = msg_text.replace(/<a .*?>(\d+)<\/a>/gi, '<span onmouseover="tooltip.scheduleShowTip(this,re_html,$1)" onmouseout="tooltip.scheduleHideTip(this)"><a href=#$1 class="answer-link">($1)</a></span>')

Проблема тут, к сожалению в регвырах не силен - кто осилит вот это:
(/<a .*?>(\d+)<\/a>/gi,
Подскажите как должно быть
22 Mefistophel
 
03.12.10
09:03
// 2. <a rel="nofollow" href="#2" class="answer-link interlink" title="BuHu" rev="#218">218</a>
   msg_text = msg_text.replace(/\(<a .*?>(\d+)<\/a>\)/gi, '<span

onmouseover="tooltip.scheduleShowTip(this,re_html,$1)" onmouseout="tooltip.scheduleHideTip(this)"><a href=#$1

class="answer-link">($1)</a></span>')
23 Mefistophel
 
03.12.10
09:04
(22) Вот так робит, тока я не понял, ссылки справа должны робить или таки нет( в таком враианте они пропускаются. надо видимо отдельную обработку для них добавить
24 Evil-Wisp
 
03.12.10
09:21
(22)У меня тоже же самое, скрывает сообщения.
Ты же просто вместо (/<a .*?>(\d+)<\/a>/gi сделал (/\(<a .*?>(\d+)<\/a>\)/gi
?
25 Mefistophel
 
03.12.10
09:22
ага))
26 Mefistophel
 
03.12.10
09:23
+(25) Опера 10.63 ссылкив тексте сообщений робят, фотки робят.
27 hd1
 
03.12.10
09:31
там фотки что-ли прямо в попапе?
я смотрю асмодифаем в теле сообщения
28 hd1
 
03.12.10
09:33
(11) это из-за узкой ячейки, можно так:
$('a.interlink').hover(
 function () {
   $(this).css('color','black');
   $(this).append($('<div id="myid" style="border: 3px solid black;padding:10px;background:#FFF6DF;width:60%;position:absolute;left:20%;text-align:left;">'+$('#message_'+$(this).html()).html()+'</div>'));
 },
 function () {
   $(this).find('#myid').remove();
 }
);

но мне не нравится это.
29 Evil-Wisp
 
03.12.10
09:35
(27) фотки при наведении там.
30 hd1
 
03.12.10
09:39
(29) сомнительная польза, не понимаю зачем видеть фотку в ответной ссылке, наверняка она часто выходит за видимую область
31 Mashinist
 
03.12.10
09:39
А как вообще скрипты включаются?
Ну загрузил я Персональный JavaScript...
Ни какой реакции :-(
32 hd1
 
03.12.10
09:41
(31)ctrl+f5
33 hd1
 
03.12.10
09:53
(29) посмотрел повнимательнее, там прикольно сделано, таскать можно окошки, я думал в него сообщение и со всеми перечисленными в нем фотками открытыми.
34 Mefistophel
 
03.12.10
09:57
ктонить задублируйте на ссылку справа еще эту обработку плз, времени чот нет пока(
35 Mashinist
 
03.12.10
10:02
(32)Я вообще другим браузером специально открыл
Сижу в Хроме, а для пробы ИЕ открываю
ни какой реакции
36 hd1
 
03.12.10
10:07
(35)А что не в хроме? В ИЕ - мисту в доверенную зону.
37 hd1
 
03.12.10
11:22
В ТулТип длину атрибутов линка надо ограничить, заменить в строке 129
/<a .*?>(\d+)<\/a>/gi
на
/<a .{0,100}?>(\d+)<\/a>/gi
чтоб он все подряд линки не хватал как одну.
38 hd1
 
03.12.10
11:55
(37) правильнее на
/<a [^>]*>(\d+)<\/a>/gi
39 Evil-Wisp
 
03.12.10
11:57
(37) Спасибо!!!! все решилось. все как надо:)

Вот он http://www.forum.mista.ru/users_js/52389.js
40 y88
 
03.12.10
12:02
(0) да, есть таое безобразие на хроме, все лениво было поправить. Возмножно из-за изменения форматирования страниц форума
Сейчас поковыряюсь
41 hd1
 
03.12.10
12:04
(40) самое время )
42 y88
 
03.12.10
12:04
(38) о как, значит по разному RegExp работает
43 hd1
 
03.12.10
12:09
(42) а где работало правильно? для теста хорошо [16] подходит, там много ссылок, бывшая регулярка их читала как одну.
44 y88
 
03.12.10
12:12
(43) в моем ИЕ, ФФ правильно
Вообще-то .*? правильный, но некоторые браузеры его не отрабатывают
45 hd1
 
03.12.10
12:19
(44) в ИЕ6 сейчас проверил, работает старая версия
.*? значит любая строка от 1го символа, включая тэги
46 hd1
 
03.12.10
12:19
(45) 1го = от одного
47 y88
 
03.12.10
12:21
(45) .*? значит минимально возможное совпадение
.* - максимально возможное (жадное)
48 hd1
 
03.12.10
12:30
(47) хм, точно, не знал
49 Mefistophel
 
03.12.10
13:08
вот спасибо!
50 Evil-Wisp
 
03.12.10
13:14
Да, еще раз спасибо автору)