Заметки программиста

Каждый будний день, ровно в 9, я пишу о себе, о своей работе и о технологиях web программирования123

А вы что еще не используете GreaseMonkey? Сейчас я расскажу что это и вы сразу его установите.

Greasemonkey — расширение для браузера Mozilla Firefox, которое позволяет пользователю устанавливать скрипты для получения изменений на странице «на лету».

Это суховатое распространенное описание означает что вы можете делать со страницами которые просматриваете все что угодно, например, добавить кнопку «скачать видео» на YouTube или схитрить на любимой браузерной онлайн игре, можно даже фавиконки у сайтов менять и отключать рекламу, да все что угодно ведь в ваших руках оказывается мощнейший инструмент — JavaScript.

Вся мощь этого расширения должна напрямую зависеть от ваших знаний и умений программировать на JS, но если вы не сильны в этом, то есть уже готовые скрипты для GM, тут их десяки тысяч.

Принцип его работы заключается в запуске нашего JavaScript на указанной странице или нескольких страницах (зависит от правила). Формат скрипта соответствует обыкновенному .js файлу (раширение у GM скрипта должно быть .user.js), но с дополнительными комментариями для идентификации и настройки, например так выглядит его начало:

// ==UserScript==
// @name          Tubro Highlighter
// @namespace     http://dustweb.ru/
// @description   Подсвечивает строки в таблице для улучшения восприятия
// @include       http://*dustweb.ru/log*
// ==/UserScript==

Эти настройки указывают что скрипт будет работать только на сайте dustweb.ru на всех страницах раздела /log. Сайт в @namespace в данном случае лишь совпадение, на самом деле он нужен лишь для идентификации автора скрипта.

Далее расскажу маленькую хитрость, как пользоваться любимым jQuery в скриптах Greasemonkey:

//Подключаем jQuery
var GM_JQ = document.createElement('script');
GM_JQ.src = 'http://jquery.com/src/jquery-latest.js';
GM_JQ.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(GM_JQ);

//Проверка, загружен ли jQuery
function GM_wait() {
    if(typeof unsafeWindow.jQuery == 'undefined') { window.setTimeout(GM_wait,100); }
    else { $ = unsafeWindow.jQuery; letsJQuery(); }
}
GM_wait();

//Весь ваш jQuery код должен быть в этой функции
function letsJQuery() {
    $('.widgettitle').css({'background':'red'});
    $('#content p ').css({'color':'#cccccc', 'font-size':'14px'});
}

Проверяем, и да не забудьте только кодировка UTF! Вы все еще не установили GreaseMonkey? Срочно ставим это быстро. И устанавливаем наш пробный скрипт, после обновите страницу. Небольшой редизайн ;)

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

Comments

There are 12 comments for this post.

  1. GolDen on Март 27, 2009 11:03 дп

    Было бы неплохо, если бы автор привел список полезных GM скриптов, кроме скачки для YouTube, которые он сам юзает, а то лазать по десятку тысяч и выколупывать ценное среди горы хлама не каждый захочет …

  2. Антонов Андрей on Март 27, 2009 11:12 дп

    Я использую скрипт для продажи только тематических ссылок для SAPE. Просто не уверен что кому-то понадобится, писал для себя.

  3. Олег on Июнь 10, 2009 12:38 пп

    О, как раз понадобится, выложите пожалуйста для ознакомления/переделки!

  4. Антонов Андрей on Июнь 15, 2009 9:18 дп

    http://dustweb.ru/files/gm/SAPE_Searcher.user.js

    Косячит на страницах отбора ссылок на отдельных проектах, на странице где все сразу работает ок.

  5. Иван on Январь 15, 2010 8:38 пп

    Почему то в GreaseMonkey не работают функции.getCookie и setCookie. Почему? Что надо сделать, чтобы заработали? Можно пример?

  6. Антон on Февраль 6, 2010 11:58 пп

    Спасибо, у меня сломался greasemonkey почему-то, перестало работать подключение jQuery через @require. Этот код работает.

  7. Анатолий on Март 18, 2010 8:52 дп

    я чтото не въехал как добавить кнопку "скачать " на сайте ютубе. хотя рожица манки показывает что скрипт включен. вот этот ролик например http://www.youtube.com/watch?v=ewIWOijU_3o по всякому пробывал качать. результат – либо нет кнопки скачать, либо Мозила не находит ссылку на скачку, либо качает но не проигрывает. с другими роликами Ютуба проблем нет…

  8. Resource on Апрель 12, 2010 3:26 пп

    ошибка: ожидаемого значения ";" не оказалось по адресу строка 1, столбец 1 (и рядом большой 16-иричный мат)
    эм… я в замешательстве…какую версию плагина используете?

  9. Антонов Андрей on Апрель 12, 2010 3:40 пп

    Текущую, а в каком скрипте у вас такая ошибка возникает?

  10. Анонимус on Май 15, 2010 8:02 дп

    а можно подробнее о "схитрить на любимой браузерной онлайн игре"?)

  11. Слава on Июнь 5, 2010 4:21 дп

    Люди может я тупой но всётаки как подключить скрипты к Greasemonkey???

  12. pasha on Июнь 15, 2010 12:14 пп

    документ в UTF-8
    название test.user.js

Write a Comment

Let me know what you think?