Спасибо
Полезнейшая вещь.
Ещё бы как-то реализовать подсвечивание не только автора топика, а любого пользователя по выбору - цены бы ему не было) Например, скрипту даёшь список ников, которые нужно подсвечивать.
Иногда замечаешь, что какой-то человек почти всегда говорит умные вещи и хочется видеть, что он ещё написал.
А вообще мне нравится реализация выделения комментариев нужных человек такая, как на дёрти — напротив каждого ника есть точка, если её нажать — то все сообщение этого человека в этом трэде будут выделены.
По-моему так удобнее всего, но я не знаю, насколько это doable здесь.
В любом случае, я этой фичей пользуюсь редко, а вот выделение авторских комментариев — это просто супер-фича, за что вам и огромное спасибо (выраженное всеми доступными способами :) )
Вообще-то я тоже далеко не дизайнер :(. Но для себя скрипт немного изменил. А именно добавил строку:
nicknames[id].parentNode.parentNode.style.border='1px dotted #FFCC66';
И вот что получилось.
Правда не знаю как себя поведёт скрипт с новыми комментариями. В JS Не силён.
Т.к. не могу создавать топики, то напишу идею здесь: Если уже открыта форма написания комментария, то ЗАБЛОКИРОВАТЬ НАХРЕН ЛИНК "НАПИСАТЬ КОММЕНТАРИЙ". Сидел сейчас писал коммент минут 5, изливался мыслями и по ошибке\промахнулся\тормознул\не выспался зелкнул вместо кнопки "написать" ссылку "написать комментарий" и полкчил чистое поле для комментирование, весь текст улетел, зря писал.... Естественно заного переписывать коммент западло, по этому вот, идея по улучшению юзабилити.
По моему есть недостаток - если ты автор топика, твои комментарии желтые, если не автор - голубые. Нет однозначности.
Изменил немного этот скрипт: теперь свои комментарии всегда подсвечиваются светло зеленым не зависимо от того, автор ты топика или нет. А в топиках с другими авторами, их комментарии – светло желтые.
var highlight_users = 'eugenga|TiGR' // в начало скрипта
// в середину функции в цикл for
if (nicknames[id].textContent.match(highlight_users) && nicknames[id].parentNode.parentNode.className != 'WriteCommentHolder') {nicknames[id].parentNode.parentNode.style.backgroundColor='#efe';}
Вообще-то я ФФ пользуюсь, сейчас проверил в Opera (9.51 for Linux) - работает, кроме стилей -moz-*
имя скрипта должно быть *.user.js
вы положили его в ту папку?
Есть одна проблема: после установки скрипта, если я оставляю комментарий в теме, то Опера после комментирования использует почти 100% CPU, сильно висит, и это проблема решается только закрытием Хабра.
Если самому не комментировать — то всё нормально.
Есть такое дело. Но там подвисание объясняется не столько скриптом, сколько поведением движка оперы.
И потом, по уму надо бы использовать DOMSubtreeModified, но Опера почему-то не хочет срабатывать по этому событию. Приходится использовать DOMNodeInserted, а он отрабатывает в опере дважды.
Вставил костыль, чтобы скрипт отрабатывал однократно.
P.S: пока со всем этим возился реально прочувствовал как быстро работают движки оперы, ff2 и ff3. И в данной ситуации ff3 рулит и бибикает отрабатывая в 20 раз быстрее оперы :) Правда после некоторых оптимизаций удалось сократить разрыв до 15 раз, но всё равно Опера огорчила...
Добавил рамочки. Только они в отличие от примера на скриншоте не заменяют серые рамки, обводящие новые сообщения. Так что новые сообщения от автора топика по-прежнему видны.
Кстати, я пока что не добавил подсветку избранных юзеров как тут приводилось лишь потому, что там используется регулярка, и это может дать о себе знать на темах с большим колличеством сообщений.
Я не добавил подсветку избранных юзеров, т.к. там юзается регулярка, и, имхо, на топиках с большим колличеством комментов это даст о себе знать.
А что касается закруглённых уголков, так та реализация частично ломает дерево сообщений, т.к. затирает атрибут style, а именно через него и указываются отступы.
function setHighlightTopicStyle(node){ node.setAttribute("style",node.getAttribute("style")+';'+highlight_topic_style);};
//Блоки "if" будут выглядеть так
if (...) { setHighlightTopicStyle(nicknames[id].parentNode.parentNode); nicknames[id].parentNode.parentNode.style. ..............
А Вам не всё равно насчёт регулярки, которая исполняется не на сервере, а не компьютерах пользователей? Я думаю, что на данное время они не займут много процессорного времени на компах.
Кстати, раз уж вы такой успешный скрипт для работы с комментами создали,, не могли бы вы ещё одну фичу туда добавить, но из немножечко другой оперы: чтоб комментарии по Ctrl+Enter добавлялись! Можно? :)
Выделение комментариев автора. Реализация