Пользователь
0,8
рейтинг
24 марта 2010 в 10:48

Разработка → Доработка скрипта быстрого показа кармы (FF, Chrome, Opera)

Опубликованный вчера скрипт для показа кармы "КармаПисчик" (автор Atilla) имел одну недоработку, не позволявшую пользоваться им на части страниц, а именно, на страницах с доменами 3-го уровня (персональные блоги). Оказался интересен не столько сам скрипт, хотя решение полезное, спасибо за него автору (в дизайне и поведении его я почти ничего не менял), а решение вопроса кроссдоменного скриптинга. Запрос к API идёт на домен 2-го уровня, а скрипт — на 3-м уровне. В результате, пришлось полностью отказаться от применения XMLHttp к API и сделать обращение к фрейму — древний «фреймовый AJAX».

Цель этого скрипта я бы сформулировал иначе, чем автор. Не «снизить объективность оценки», а улучшить влияние на карму в зависимости от её значения. Например, если карма находится в опасном диапазоне около нуля, то каждое изменение сильно сказывается на возможности публиковаться. Иногда нужно удержаться от изменения, а для этого не обязательно переходить на страницу пользователя. По этой причине 3 цвета я расположил в таких диапазонах: до -6, от -5 до +9 и от +10 и выше.



Добавлена задержка срабатывания. Если мышь находилась над ником пользователя менее 300 мс, подгрузки данных не происходит. В подсказке title добавлен просмотр рейтинга. По наведению на себя возле комментария тоже показываются свои карма и рейтинг. Сделано без запоминания карм разных авторов, поэтому не подгружаются данные только при повторном показе того же автора.

Скрипт конфликтует с другим скриптом, HabraKarma (автор: fedor.indutny) для Chrome, поэтому их нужно включать по отдельности через окно chrome://extensions/.

Проверено в Chrome 4 и FF 3.6 + GreaseMonkey.
На официальные страницы не выкладываю — возможно, сам автор доработает скрипт далее и опубликует.

Скачать:
Для FF + GreaseMonkey, для Chrome: HabraKarmaView.user.js, версия 1.1, 3.8 КБа (ниже — версия новее!).

Опера недоработана (в чтении данных из фрейма), Safari не проверялось (если способно, то только для Mac, т.к. GreaseKit работает только на Маках).


Сегодня же, 23.15. Доработка скрипта.
1. Убраны мигания и пропадания подсказок за счёт более сложной организации висящего блока.
2. Добавлена фича — постоянное висение блока с кармой, если кликнуть по нему. Постоянно висящие блоки уже не подгружаются каждый раз. Режим постоянного висения снимается, если кликнуть по указателю (блоку с кармой) ещё раз (указатель руки сменяется на стрелку).
3. Цвета сделаны бледнее и спокойнее, скруглённые углы у блоков в соответствии с общим дизайном.

Сейчас выглядит так (FF; нижний блок был кликнут и находится в режиме постоянного показа):

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

26 марта. Опера стала работать. Её механизм доступа к XML оказался немного другим — что-то не смогла прочитать, а что-то смогла записать. В результате — те же действия без потери функциональности. Добавлено раздвигание кнопок "+" и "-".

FF + GreaseMonkey, Chrome3+, Opera 10+: HabraKarmaViewPlus.user.js, версия 1.3, 5.7 КБа
spmbt @spmbt
карма
154,5
рейтинг 0,8
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (11)

  • +1
    Ох уж эта карма…
  • 0
    В Chrome 4.1.249.1036 при попытке клика на ник пользователя popup со значением кармы мешает перейти по ссылке. Успел нажать только раза с 10-го.
    • 0
      Странно, у меня такой же, но нажимается без проблем. Значок висит строго над буквами, не мешает, размер шрифта тоже не влияет.
      • +1
        Хм, у меня именно перед буквами. Сейчас попробую отключить все остальное.
      • 0
        Проверил, конфликт с «HabraKarma — Версия: 1.1.2»
        • 0
          Да, я об этом упоминал в тексте. Но у меня с 2 скриптами вообще никакой показ не работает. Что-либо приходится отключать.
          • 0
            Может быть стоит объединить свои усилия в разработке? :)
  • 0
    у меня при наведении на ниак пользователя окошко с цифрами показывается не как на картинке, а на долю секунды появляется над самим ником, и сразу же пропадает :(
    ФФ 3.6.2
  • 0
    было бы хорошо если бы появлялась индикация посылки запроса…
    • 0
      то есть я не правильно сформулировал предложение(
      вместо события наведения курсора сгенерить ссылочку, которая, в свою очередь, будет запускать запрос кармы (соответственно с помощью неё же можно будет потом обновить данные второй и третий раз)
      соответственно пока идет запрос выводить какой-либо индикатор загрузки… [щелкнув по которому можно отменить запрос (но это я уже привередничаю)]
      и еще помимо кармы у Вас в title ссылки вставляется хабра сила человека. Там можно было бы это написать… Хабрасила: n-надцать
      • +1
        Ссылочки — это много лишних деталей. Сейчас и без того можно посмотреть новую карму, если перед этим посмотреть карму у другого.

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

        Процесс загрузки — сейчас возможно смотреть по миганию иконки у таба в FF и Хроме, и ещё снизу у FF прогресс-бар мелькает. Делать специальную анимацию прогресса — можно, но надо продумать, в том числе нужность его :). Отмену запроса на долгое время я уже сделал, а на короткое — попытки чтения идут по 6 секунд. При неудаче их можно повторить. Тоже вполне юзабельно.

        Писать слово «хабрасила» — никому не нужно. Кто установил, тот и так знает, что получает и зачем он это делает.

        Главное, сейчас сделал (в версии 1.2, вторая ссылка вверху) удобнее без мельканий управление показом, дальше жить можно (покажет окончательно время). На очереди остаётся приручение Оперы.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.