Greasemonkey для Mozilla Firefox: запуск пользовательских скриптов на сайтах

Укрощаем GreaseMonkey

Greasemonkey для Mozilla Firefox: запуск пользовательских скриптов на сайтах

За последние пару недель мне пришлось плотно поработать с системой управления пользовательскими скриптами для продуктов Mozilla — GreaseMonkey. И раз уж я сам себя назначил администратором одноименного блога, значит написать введение в вопрос — моя святая обязанность.

Введение

GreaseMonkey (далее GM) — система управления пользовательскими скриптами для продуктов Mozilla. В моей статье я буду говорить о браузере этой компании, о Firefox далее (FF). Так же в некоторых местах я коснусь его конкурентов, а именно Opera, Safari и конечно-же Internet Explorer (далее IE).

Пользовательский скрипт (User Script) — скрипт, написанный на языке JavaScript (далее JS), устанавливаемый пользователем в браузер и исполняющийся при загрузке веб-страниц. Используется для изменения их дизайна (в широком смысле этого слова).

Говоря проще, с помощью пользовательских скриптов, можно добавить/удалить/изменить элементы веб-страницы, изменить их поведение, улучшить User Experience.

Установка

GM легко ставится как расширение для FF с сайта дополнений. Так-же у GM есть официальный сайт, где можно найти массу полезной информации.

После установки и перезапуска у FF появится иконка: И это значит что можно устанавливать пользовательские скрипты.

Самый большой склад пользовательских скриптов — это userscripts.org. Установка проиходит очень просто. GreaseMonkey просто перехватывает ответ на запрос JS-файла, и если он имеет специальный заголовок (расскажу о нем ниже), то вызывает диалог установки:

Обзор

Управлять GM и установленными скриптами можно через контекстное меню, которое вызывается правом щелчком по рожице обезьяны: В верхней части меню отображается спискок активных для данной страницы скриптов. Любой скрипт можно отключить, убрав галочку.

С помощью API GM вы можете расширить это меню. Все действия, зарегистрированные через GM_registerMenuCommand, появятся в подменю «Команды скрипта».

Пункт меню «Новый скрипт» я пропущу, так как уверен, что в редакторе делать скрипт удобнее, в том числе и редактировать метаниформацию. В любом случае, я надеюсь, что освоение этого мастера не вызовет у читателей проблем. «Управление скриптами» вызвывает следующее окно: В этом окне вы можете сами поднастроить любой установленный пользовательский скрипт. Для этого выберите его в левом списке. Можно добавить удалить маски URL, для которых этот скрипт будет загружаться или НЕ загружаться (классический Allow/Deny), включить/выключить/удалить скрипт и, что самое важное для разработчика, отредактировать его вживую. Для редактирования скрипта надо нажать кнопку «Изменить». В первый раз GM попросит выбрать редактор. В последующие будет автоматически открывать рабочую копию скрипта в выбранном редакторе. На этом обзорная экскурсия по GM считается законченной и можно переходить непосредственно к тонкостям разработки пользовательских скриптов.

Пользовательские скрипты

GM-скрипты практически ничем (о некоторых особенностях, я расскажу в следующем разделе) не отличаются от обычных JS-скриптов, поэтому никаких специальных знаний для написания не нужно.

Но для того чтобы GM могла распознать скрипт как пользовательский нужно добавить специальный заголовок:

// ==UserScript== // @name Weborama Inline Player // @namespace tbms.

ru/weborama/inline // @description Includes weborama inline player // @author Konstantin Shvydky, Nick Mitin // @include * // @exclude file://* // ==/UserScript== /* This code is licenced under the GPL www.fsf.org/licensing/licenses/gpl.html */

С name, author, description все понятно, надо остановиться на остальных параметрах

namespace — любая URI (это не ссылка, а аналог HTML namespace). Можно считать этот параметр уникальным идентификатором скрипта.

include — маска для страниц, которые будут активировать данный скрипт. Может быть несколько директив. @exclude — маска для страниц, которые НЕ будут активировать данный скрипт. Может быть несколько директив. Также хорошим тоном будет указать лицензию, под которой распространяется сам скрипт. Это можно сделать ниже метаданных. * О метаданных на greasespot.net.
Вторым обязательным условием является окончание названия файла. Оно должно заканчиваться на “.user.js”, иначе GM не будет распознавать скрипт.

Запуск скрипта для GM производится в порядке очередности по наступлению события DOMContentLoaded у обрабатываемой веб-страницы. Имейте это ввиду.

Tips & Tricks

Мы уже выяснили, что пользовательские скрипты обычно меняют дизайн веб-страниц. Поэтому основные задачи, которые встают перед разработчиками связаны с DOM-программированием, а именно манипуляциями с DOM-моделью веб-страниц.

Проблема здесь в том, что порой очень сложно добиться адекватной работы скрипта на антисемантических сайтах. И я бы хотел дать несколько наводок для GM-разработчиков.

В Опере, Сафари и Файерфоксе есть встроенная поддержка XPath, через функцию document.evaluate().

Хорошее описание этой функции есть в MDC. Тем кто не в курсе, XPath (XML Path Language) является языком для обращения к частям XML-документа. В случае веба это определение верно и для HTML. Отличный туториал есть на ZVON.org.

Суть метода в том, что вы создаете и посылаете «запрос» в DOM-модель, а в ответ вам приходит итератор со всеми нодами, которые удовлетворяют этому запросу.

Важно знать, что нельзя напрямую изменять эти ноды в итераторе, так как любое изменение перестраивает DOM, таким образом делая итератор невалидным. Поэтому сначала создайте массив и скопируйте туда ссылки на эти ноды, а потом уже работайте с ними. В примере в MDC все это рассмотрено.

В IE тоже есть частичная поддержка evaluate, которая реализуется черех хак, созданный Dimitri Glazkov и Mehdi Hassan.

Мы внесли его в свой JS-Extender, поправив в нем некоторые баги. Тем не менее, у нас не получилось выполнять сложные XPath запросы, поэтому мы не пользуемся этой функцией в IE.

Еще один важный момент, который стоит отметить, это то что при использовании свойства element.childNodes, FF считает текстовыми нодами переносы строки между тегами. Например у div с id = container будет не три, а пять дочерних нод: content1 content2 Будьте бдительны! И последнее, но самое важное. В JS есть объект window, который как-бы является глобальным неймспесом для всех глобальных сущностей JS. если мы пишем var myVar = 1; то она будет доступна через window.myVar или window['myVar']. Так вот, в GM тоже есть window, но он является оболочкой вокруг самого window веб-страницы. это сделано для того, чтобы ваш код не пересекался с оригинальным кодом страницы и не мешал ему. Но существуют ситуации, когда нужно напрямую обратиться к тому самому window, чтобы, например, получить значение переменной сайта. На помощь приходит глобальное свойство unsafeWindow, которое и предоставляет к нему доступ. Если вы пишете кросс-браузерный пользовательский скрипт, то имейте ввиду, что unsafeWindow есть только в GM, в Опере его нет. Поэтому лучше сразу завести глобальную переменную и положить в нее нужный вам window, например так: var aWindow = (typeof unsafeWindow != 'undefined')? unsafeWindow: window;

Ложка дегтя

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

yoast.com/greasemonkey-auto-update-notification

splintor.wordpress.com/2007/05/01/greasemonkey-wish-auto-update-user-scripts
userscripts.org/scripts/show/2296 На данный момент меня не устраивает ни один из них. Поэму мы взяли этот вопрос в разработку, и непременно придумаем элегантное решение проблемы. О чем я сообщу вам отдельно.

В общем можно сказать, что GreaseMonkey — это частный случай механизма управления пользовательскими скриптами. В Опере они поддерживаются без всяких расширений, по информации, поступисшей от pepelsbey сушествует плагин для Safari, который позволяет запускать эти скрипты — GreaseKit, по информации поступившей от jursovet уже реализована поддержка скриптов и для Chrome

На этом считаю свой доклад законченным. Спасибо, что дочитали.

Источник: //habr.com/post/39431/

Greasemonkey для Mozilla Firefox: запуск пользовательских скриптов на сайтах

Greasemonkey для Mozilla Firefox: запуск пользовательских скриптов на сайтах

Браузер Mozilla Firefox отличается не только высокой функциональностью, но и огромным выбором сторонних расширений, с помощью которых можно значительно расширить возможности вашего веб-обозревателя. Так, одним из уникальных расширений для Firefox является Greasemonkey.

Скачать последнюю версию Mozilla Firefox

Greasemonkey – браузерное дополнение для Mozilla Firefox, суть работы которого заключается в том, что оно способно выполнять пользовательский JavaScript на любых сайтах в процессе веб-серфинга. Таким образом, если у вас есть собственный скрипт, то с помощью Greasemonkey он может автоматически запускаться вместе с остальными скриптами на сайте.

Как установить Greasemonkey?

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

Для этого щелкните в правом верхнем углу по кнопке меню браузера и в отобразившемся окошке выберите раздел «Дополнения».

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

В результатах поиска первым же по списку отобразится искомое нами расширение. Для того, чтобы добавить его в Firefox, щелкните правее от него по кнопке «Установить».

После завершения установки дополнения потребуется выполнить перезапуск браузера. Если вы не хотите это откладывать, щелкните по отобразившейся кнопке «Перезапустить сейчас».

Как только расширение Greasemonkey будет установлено для Mozilla Firefox, в верхнем правом углу появится миниатюрная иконка с симпатичной обезьянкой.

Как пользоваться Greasemonkey?

Для того, чтобы приступить к использованию Greasemonkey, вам потребуется создать скрипт. Для этого щелкните по иконке со стрелочкой, которая расположилась правее от иконки самого дополнения, чтобы отобразить выпадающее меню. Здесь вам потребуется щелкнуть по кнопке «Создать скрипт».

Введите наименование скрипта и, при необходимости, заполните описание. В поле «Пространство имен» укажите авторство. Если скрипт ваш, то будет отлично, если вы введете ссылку на ваш сайт или электронную почту.

В поле «Включения» потребуется указать список веб-страниц, для которых будет выполняться ваш скрипт.

Если поле «Включения» оставить полностью пустым, тогда скрипт будет выполняться для всех сайтов.

В это случае вам может потребоваться заполнить поле «Исключения», в котором потребуется прописать адреса веб-страниц, для которых, соответственно, скрипт выполняться не будет.

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

Для примера создадим самый простенький скрипт. В нашем примере мы хотим, чтобы при переходе на любой сайт отображалось окно с заданным нами сообщением. Таким образом, оставив поля «Включения» и «Исключения» нетронутыми, в окне редактора сразу под «// ==/UserScript==» вводим следующее продолжение:

alert(‘lumpics.ru’);

Сохраняем изменения и проверяем работу нашего скрипта. Для этого посещаем любой веб-сайт, после чего на экране отобразится наша напоминалка с заданным сообщением.

В процессе использования Greasemonkey может быть создано достаточно большое количество скриптов. Для того, чтобы управлять скриптами, щелкните по иконке выпадающего меню Greasemonkey и выберите пункт «Управление скриптами».

На экране отобразятся все скрипты, которые можно изменять, отключать или вовсе удалять.

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

Greasemonkey – браузерное расширение, которое при умелом подходе позволит полностью подстроить работу веб-сайтов под ваши требования. Если вы используете в дополнении уже готовые скрипты, то будьте предельно внимательны – если скрипт был создан мошенником, то вы сможете получить целый букет проблем.

Скачать Greasemonkey для Mozilla Firefox бесплатно

Загрузить последнюю версию программы с официального сайта Мы рады, что смогли помочь Вам в решении проблемы.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

ДА НЕТ

Источник: //lumpics.ru/greasemonkey-for-mozilla-firefox/

Активируем пользовательские скрипты в браузерах

Greasemonkey для Mozilla Firefox: запуск пользовательских скриптов на сайтах

Я решил продолжить тему браузеров, начатых вчера Иваном, и рассказать вам немного о таком явлении, как пользовательские скрипты. Что это такое, с чем его едят и для чего это вообще нужно. Так что сегодня у нас будет небольшой ликбез. Плюс я расскажу, как их включить и использовать в наиболее популярных браузерах под Mac OS X.

Немного теории

Думаю, сначала стоит разобраться с тем, что же это за зверь такой — пользовательские скрипты.

User script (пользовательский скрипт) — это специальные файлы, написанные на JavaScript, которые выполняются в браузере при загрузке определенной страницы из интернета.

Они позволяют автоматически форматировать страницы, скрывать нежелательное содержимое (рекламу), изменять поведение клиентской части веб-приложений, добавлять элементы управления на страницу и т. д.

К примеру, сейчас я использую показ favicon’ов в поисковой выдаче Гугла. Должен сказать, что теперь мне немного легче визуально идентифицировать сайты и быстрее находить то, что я ищу. И таких разнообразных полезностей существует бесчисленное множество.

Структура пользовательских скриптов проста, но для их использования вам даже не потребуется знаний JavaScript. Думаю, не лишним будет отметить тот факт, что модификации, вызванные каким-либо скриптом, будут работать только тех людей, которые этот скрипт установили. Это я так, на всякий случай

Источник: //macovod.net/2009/09/aktiviruem-polzovatelskie-skripty-v-brauzerax/

Подключение собственных скриптов к Mozilla Firefox: плагин Greasemonkey

Greasemonkey для Mozilla Firefox: запуск пользовательских скриптов на сайтах

Сегодняшнюю заметку я решила посвятить подключению пользовательских скриптов (user scripts) к браузеру Mozilla Firefox. UPD: тестировано на Фаерфоксе с 3 по 12, с Greasemonkey до версии 0.9.18 включительно. Не всегда бывает необходимость в таких скриптах, но уж если она возникла…

Допёк меня один человек на форуме (вообще-то, два, но первый больше). И пишет-то зачастую толково и интересно, да только нет-нет да и впихнёт какую пакость. А у меня от этих подначек короткое замыкание с перекаливанием, хоть на форум вообще не ходи. Чаша терпения переполнилась, когда мне было сказано, что у меня глючит ч.ю.-браузер. Это у меня-то — браузер, хоть какой ни возьми?..

…И сказала тогда Княгиня: «Не княжеское то дело — нервы себе всяко разно такими Гаврилами трепать. И вообще, профи я, или нет?»

Функции игнора на форуме нет. Пришлось обеспечить игнор на уровне браузера. Да-да, его, родимого. Это у меня ч.ю. такое. Привыкла я любой браузер ставить на место, не мытьём, так катаньем. Ну, кроме морально устаревших или особо экзотических.

Если вы не знаете, что такое Firefox (он же Файерфокс, он же Огнелис) и где его берут, то, скорее всего, не сумеете написать скрипт. Но это не значит, что для вас всё потеряно: скачать Firefox вам никто не мешает (//www.mozilla.com/), а скрипты можно найти готовые. Однако для моего конкретного случая понадобилось написать «индпошив».

Скрипт к браузеру подключается с помощью бесплатного плагина Greasemonkey (скачать плагин); перед установкой плагина убедитесь, что путь к профилю браузера не содержит кириллицы: плагин не будет работать. Такое может произойти, если кириллицей записана ваша учётная запись на компьютере («Вася» или «Администратор»), а Firefox установлен в папку по умолчанию. В этом случае придётся создать новый профиль.

Также может повредить кириллица в самих скриптах: после очередного обновления плагина послетали скрипты, содержащие кириллические комментарии: в папке они есть, а плагин их не видит. Поиск глюка был долгим.

Создание нового профиля для Firefox

Главное меню: «Пуск» ? «Выполнить», набираем

“C:\Program Files\Mozilla Firefox\firefox.exe” -p -no-remote

(C:\Program Files\Mozilla Firefox\firefox.exe — путь к папке браузера по умолчанию; если вы устанавливали в другую папку, то указываете свой). Откроется окно выбора профилей Firefox с обычными кнопками «Создать», «Переименовать», «Удалить». Кнопка «Создать» открывает Мастер создания профиля.

В нём следует указать название и путь к папке, где будут храниться настройки новой учётной записи: напоминаю, все папки должны быть названы латиницей.

Кстати, хранение настроек и параметров Firefox не в системной папке позволит в случае переустановки системы восстановить профиль со всеми настройками.

Установка скриптов

Как добавить скрипт

После создания профиля и установки плагина можно приступать собственно к подключению скриптов. В меню браузера открываем вкладку «Инструменты» ? «Greasemonkey» ? «Новый скрипт» (кстати, не забудьте поставить галочку «включить Greasemonkey» — обезьянья мордочка в правом нижнем углу окна браузера станет яркой; когда плагин отключён, мордочка серая). В появившемся окне укажите

  • название скрипта,
  • пространство имён (придумайте сами; можно взять любое сочетание букв, только помните, что оно должно быть уникальным, то есть, собственным для каждого скрипта),
  • описание (латиницей),
  • адрес страницы, на которой применяется скрипт (по умолчанию это страница, на которой в данный момент открыт браузер; чтобы указать множество страниц, используется символ *, например, в случае //site.ru/ скрипт применяется только к этой одной странице, а в случае //site.ru/* — ко всему сайту site.ru).

После нажатия на клавишу «Ок» откроется текстовый редактор, при этом, если вы создаёте скрипт впервые, вам будет предложено выбрать редактор на ваше усмотрение. Если впоследствии вы решите, что ошиблись выбором, в версиях Greasemonkey, начиная с 0.

9, редактор можно изменить в настройках самого плагина. В более ранних версиях изменить редактор можно в настройках браузера: набрав about:config в адресной строке, найдите строку greasemonkey.editor и укажите путь к новому редактору.

Кстати, если путь к учётной записи содержит кириллицу, вы узнаете об этом именно в момент первого открытия редактора (если не позаботились раньше). В этом случае вам следует назначить новый профиль, как описано выше. Если же вы по ошибке заполнили кириллицей описание скрипта, то в Greasemonkey, начиная с версии 0.9, скрипт будет сбрасываться при перезагрузке браузера.

Скрипты расположатся в папке /профиль_FF/gm_scripts/папка_скрипта. В последних версиях Greasemonkey новый скрипт начинает работать без перезагрузки браузера.

OZON.ru — Книги

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

Недостатки, общие для всех таких скриптов: работает не мгновенно и подтормаживает страницу. Как ни оптимизируй — до нуля время работы свести не выйдет. Но в моём случае это — умеренная плата за сохранение нервов. А также за избавление от великопостных искушений.

Источник: //webdevelopernotes.ru/2009/04/05/firefox-scripts-greasemonkey/

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.