Как стать автором
Обновить
0

GreaseMonkey *

Расширение для браузера Mozilla Firefox

Сначала показывать
Порог рейтинга
Уровень сложности

Факторы популярности юзерскриптов на примере одного сайта

Время на прочтение5 мин
Количество просмотров1.5K
Поговорим о скрипте выделения комментария автора статьи в топике, который в своё время был крайне популярным, судя по количеству скачиваний с 2008 года на сайте userscripts.org (4433 на момент написания этого отзыва). Функция простая, но удивительно, как она могла набрать в несколько раз больше скачиваний, чем другие скрипты, с другими функциями. Давайте разберём факторы, которые могли приобрести популярность этого скрипта и не способствовать популярности других.
Читать дальше →

Создание кроссбраузерной оболочки для пользовательских скриптов

Время на прочтение4 мин
Количество просмотров6.7K
Здравствуйте, уважаемые хабражители. Постов про пользовательские скрипты (userscripts) было на хабре немало, тем не менее, они только показывали, как ими пользоваться. А в работе юзерскриптов достаточно много кроссбраузерных несовместимостей (как и в любой области браузерного js). Естественно, можно установить различные дополнения для разных браузеров, однако, в случае написание скрипта для конечного пользователя, придётся сопровождать его огромным readme по установке компонент для обеспечения нормальной его работы. Что лично меня, да и вас, полагаю, тоже, не очень-то устраивает.

В данной статье речь будет вестись о трёх браузерах: Mozilla Firefox (с установленным GreaseMonkey), Google Chrome, Opera. Целью статьи является «заготовка», которая позволит пользовательскому скрипту работать одинаковым образом во всех перечисленных браузерах. Реализация GM API рассматриваться не будет, т.к. таковых уже сотни. Предполагается, что читатель уже знаком с общими правилами написания юзерскриптов (в случае, если нет, рекомендую сначала прочитать другую статью).
Читать дальше →

Изменения на Хабре глазами разработчика со стороны

Время на прочтение4 мин
Количество просмотров825
Выкладываю обещанный небольшой обзор нововведений и небольших, на мой взгляд, недоделок (не багов), которые постарался исправить в пользовательском скрипте.

1) Рассмотрение сайта под углом вёрстки и скриптов породило ряд замечаний и наблюдений, которые будут интересны всем — и разработчикам фронтенда, и остальным пользователям сайта.

2) Небольшое, чисто деловое сообщение: скрипт, поддерживающий вёрстку и делающий различные улучшения интерфейсов на Хабре, HabrAjax, уже выложен на свой хостинг с исправлениями, учитывающими новую вёрстку. Подверглись обновлениям, конечно, и стили ZenComment.
Читать дальше →

Habrahabr Sausage Navigation

Время на прочтение2 мин
Количество просмотров1.1K
Сегодня в рассылке DayliJS я открыл для себя одно прекрасное расширение — jQuery Sausage, которое позволяет добавлять на страницу очень удобную схему навигации — блоки, разделенные заголовками, масштабируются относительно высоты контента и отображаются как diff-аннотации в WebStorm или NetBeans (нечто подобное можно видеть слева поста).

image
Картинка кликабильна ведет на пример jQuery Sausage

Это очень удобный способ навигации по большим спискам статей и по параграфам статей. Эксперимента ради я решил воссоздать этот плагин отдельно от jQuery и jQuery UI и заточить его под хабр (оригинальный плагин тянет за собой несколько Кб лишних скриптов). Моё расширение сканирует блоки статей или блоки заголовков и отображает их в виде цепочки блоков. При наведении на блок отображается заголовок, по клику на блок страница скроллится на соответствующий заголовок страницы. К сожалению, не все посты хорошо отформатированы, поэтому такой способ навигации не всегда эффективен. Т.к. это эксперимент, то некоторые фичи jQuery Sausage пока урезаны.
Читать дальше →

Просмотр видео не уходя с сайта

Время на прочтение2 мин
Количество просмотров4.4K
imageВсем уже давно понятно, что видео в интернете вещь необходимая. Но многие форумы, социальные сети и в том числе хабрахабр не всегда позволяют встроить видео в комментарий или тему. Хабрахабр к счастью только в комментарии не позволяет видео встроить, а на большинстве форумов даже в теме видео не встроить. И вот этот скрипт немного облегчит нашу с вами жизнь в сети (он работает на всех сайтах, а не только на хабрахабре).

Скрипт подменяет обработку ссылок на видеосайты: youtube.com, vimeo.com и twitvid.com таким образом, что по клику на ссылке (на видео), прямо в странице будет встроен видеоплеер. Получается, чтобы посмотреть видео никуда уходить с сайта не надо! Нажал на ссылку, посмотрел и закрыл.
Читать дальше →

Обновляем счётчик сообщений Вконтакте без перезагрузки страницы

Время на прочтение5 мин
Количество просмотров26K
Я пользуюсь той-самой-социальной-сетью по нескольким причинам, одна из которых — возможность обмена текстовыми сообщениями (некоторые мои знакомые принципиально не пользуются мессенжерами, приходится подстраиваться). Раньше приходилось постоянно обновлять страницу, чтобы узнать о новых сообщениях, не так давно, Вконтакте появился сервис мгновенных сообщений, но он мне сразу не пришёлся по душе и я решил автоматизировать процесс.

В этом топике я расскажу о своей реализации механизма обновления индикатора «Мои сообщения» без перезагрузки страницы. Хотите узнать подробности? Добро пожаловать под кат!
Читать дальше →

Приведение дизайна Jira к читабельному виду

Время на прочтение2 мин
Количество просмотров8.3K
Для того, чтобы легче работалось с багтрекером Jira, установите юзер-стили, прописав в них свой сервер разработки.
    Подобная проблема имеется и у багтрекера Trac. В их дизайне по умолчанию информация, относящаяся к разным по смыслу блокам (пользовательские сообщения и системные) набрана в похожих окнах без границ. Информация из разных окон путается между собой, поэтому ещё до исправления ошибок требуется включать мозг, чтобы начать различать блоки, вдумчиво вчитываясь в разбросанные (насыпанные) слова. Через некоторое время у пользователя появляется искушённость, он намётанным глазом с полувзгляда учится распознавать блоки в Джире.
Читать дальше →

Кнопка Evernote site memory для Хабра

Время на прочтение1 мин
Количество просмотров833
Не всегда есть время прочитать интересную статью на хабре и я откладывал их в закладки. Но случалось так, что перейдя из закладок на страницу получал сообщение о том, что топик перемещён в черновики, или же автор был заблокирован. Есть хороший вариант для этого — Evernote, но под версии linux нет nevernote.sourceforge.net (спасибо andy_minsk за ссылку), а клиппер для firefox во время работы блокирует все остальные окна firefox(может это только у меня такая проблема), к тому же сохраняется вся страница с лишними блоками, либо нужно выделять то, что надо сохранить. Поэтому с появлением кнопки site memory, возникло желание прикрутить её к хабру.
Читать дальше →

ГОСТы по GreaseMonkey'вски

Время на прочтение2 мин
Количество просмотров2.6K
Подошла недавно коллега и поведала, что никак у нее не получается сохранить страничку ГОСТа с нелюбимого сайта http://protect.gost.ru.
«Нам ли быть в печали, старушка» — сказал я ей, открыл вышеупомянутый сайт и начал ковырять смотреть.
подробности

Электронная регистрация на поезд РЖД — экспорт билета в Гугл- и Яндекс.Календарь

Время на прочтение2 мин
Количество просмотров15K
image

Покупая билет на поезд дальнего следования РЖД, можно воспользоваться услугой электронной регистрации. Это когда приходишь на поезд с паспортом и вообще без билета. Оно неоднократно опробовано и прекрасно работает.

У электронной регистрации мне известны три проблемы.
1) [Животрепещущая] Туалеты на вокзалах платные. Но за два часа до отправления и в течение двух часов после прибытия — бесплатно (Вы этого не знали? Упс, вокзальные туалеты теперь постигнет хабраэффект...)
При наличии электронного билета гадить бесплатно вы можете только в комментах, но не на вокзале.

2) [Бюрократическая] Если вы едете в командировку от организации, особенно государственной, то бухгалтерии нужен билет в качестве обоснования, что вы не лось.
Электронный билет — вы электронный лось.

3) [Основная] Подходя к поезду, вы должны знать свой номер вагона! Иначе вам придётся идти к начальнику поезда и искать свою фамилию в списке — а если вы пришли к поезду впритык, то можете этого и не успеть!

И вот к этой-то проблеме я и предлагаю гризманки-решение.
Читать дальше →

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

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

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

HabrTree — скрипт сворачивающий по оценке

Время на прочтение1 мин
Количество просмотров3.1K
Заметил за собой что в больших или малоинтересных обсуждениях читаю только комментарии с положительной оценкой. Что бы упростить себе это занятие был написан скрипт.

userscripts.org/scripts/show/71427

После установки появляется следующее.

image
Первые две кнопки свернуть, развернуть все. Далее кликаем на оценку и сворачиваем все неинтересные комментарии, оставшиеся будут подсвечены.

PS Если что то не работает, попробуйте установить новую версию.

Убран инпут спасибо vrent

Навигация между лучшими комментариями

Время на прочтение2 мин
Количество просмотров852
Я хотел бы представить вам небольшое решение для оптимизации чтения Хабрахабра.

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

Но ведь у комментов есть оценки! Почему бы не воспользоваться ими как мерой «информационной ценности» комментария? После прочтения статьи о hjkl навигации у меня появилась идея клавиатурной навигации на Хабре, но не между всеми комментариями, а только теми которые были оценены выше определенного порога. Например, нажимая j, перемещаемся к следующему комментарию который получил больше 10.
Во время программирования я вспомнил очередную, часто здесь упоминаемую, информацию, а именно принцип Парето, согласно которому, 20% комментариев будут нести 80% информационной нагрузки. И добавил возможность «умной» навигации, когда перемещение происходит между 20% самых высокооцененных комментариев.
Читать дальше →

Ближайшие события

Экспорт Дней рождения из вКонтакте в Google Calendar

Время на прочтение3 мин
Количество просмотров41K
UPD: Скрипт устарел, он больше не работает и не поддерживается. Попробуйте использовать более новые аналоги, например вот этот.



Здравствуй, уважаемое хабрасообщество!
Сегодня я хочу поделиться с тобой одним, весьма полезным, на мой взгляд, скриптом. Если вам уже всё понятно из картинки для привлечения внимания, вот линк.

Читать дальше →

Автообновление скриптов в следующей версии Greasemonkey

Время на прочтение1 мин
Количество просмотров901
Пару дней назад "issue: Auto-update scripts", пометили как «0.9.x».

Я предложил разработкикам вот такой вариант интерфейса:

Greasemonkey UI prototype

Они пока молчат. Сам я пока не могу прислать им патч, а не картинку. Слишком плохо знаком с расширениями Файрфокса.

Читать дальше →

Используем jQuery в скриптах GreaseMonkey

Время на прочтение3 мин
Количество просмотров15K
Я хочу рассказать об удобных и неоправданно редко использующихся новшествах GreaseMonkey версии 0.8, которая доступна уже более года. Они помогут сделать пользовательские скрипты более модульными, а главное — дадут возможность без ухищрений использовать jQuery, что позволит нам «писать меньше, а делать больше». Речь идет о новых мета-параметрах пользовательских скриптов: @resource и @require.
Читать дальше →

Пишем кроссбраузерный UserJS. Пример №3: TwitPic thumbnails

Время на прочтение2 мин
Количество просмотров2K
Schwarzenegger: Buddy Bison and me in Washington @ Natl Park Trust event

twitpic-thumbnails.user.js добавляется на страницу твитера привью картинок с twitpic. Работает как минимум в Opera, Firefox Greasemonkey, Google Chrome и Safari GreaseKit.

Читать дальше →

Пишем кроссбраузерный UserJS. Пример №2: переопределяем alert()

Время на прочтение1 мин
Количество просмотров2.6K
Начало: Пример №1: меняем логотип Яндексу

Прошлый раз меня спросили: "А из UserJS есть доступ к переменным страницы?".

Ответ: да.

Я покажу пример с функцией alert(). alert — переменная страницы, метод window. Заместо alert может быть любая другая переменная.

Читать дальше →

Решение проблемы с созданием нового скрипта

Время на прочтение1 мин
Количество просмотров1K
Суть её такова: Если в имени пользователя Windows используется кириллица, то при создании нового скрипта(из меню Greasemonkey) его файл не открывается в редакторе из-за неверного пути.
Покопавшись в исходниках Greasemonkey, было найдено решение.
Читать дальше →

Пишем кроссбраузерный UserJS. Пример №1: меняем логотип Яндексу

Время на прочтение2 мин
Количество просмотров5K
Firefox, Opera, Safari и Chrome поддерживают UserJS. Все по разному. Я планирую написать серию статей про то как писать скрипты для этих браузеров. В день по одной.

Сегодня мы поменяем логотип Яндекса на Гугловый. Такой вот бесполезный скрипт.

Yandex with Google logo

yandex-with-google-logo.user.js:

// ==UserScript==
// @name      Google logo on yandex.ru
// @include   http://www.yandex.ru/*
// ==/UserScript==

var logo = document.querySelector("img[src$='logo.png']");
if (logo) {
  logo.src = 'http://www.google.com/intl/en_ALL/images/logo.gif';
  logo.removeAttribute('height');
}


Читать дальше →