GreaseMonkey. Шаблон пользовательского скрипта
GreaseMonkey (жарг. механик) это менеджер пользовательских JS скриптов для кастомной стилизации, парсинга и прочей обработки содержимого WEB страниц. С помощью GreaseMonkey (далее GM) вы можете создавать кастомные скрипты которые можно будет запускать на определенных сайтах или страницах. Ниже я опишу некоторые основные параметры и плагины GM, в конце пример простого user-скрипта для подключения библиотеки jQuery на любую страницу.
Примечание
Для доступа к объекту window обращайтесь к unsafeWindow, поскольку, в контексте user.js скрипта, window - это неймспейс самого GS, оболочка над оригинальным window, которая содержит свойство window.
Параметры скрипта
// @resource NAME URL подключить внешний файл (изображения, шрифты, html шаблоны)
// GM_getResourceURL(NAME) - получить локальную ссылку на ресурс
// GM_getResourceText(NAME) - получить plain text содержимого файла ресурса
// @require URL - подключить внешний скрипт
// @grant FUNCTION - включить использование ф-ции ядра или плагина
// GM_disableMenuCommand, GM_enableMenuCommand
// r - клавиша для быстрого применения команды в меню
Плагины
Для подключения необходимого плагина используйте теги @require
- для загрузки необходимого плагина и @grant
- для разрешения определенной ф-ции, которую предоставляет плагин.
gm_config
Этот плагин предоставляет методы для хранения и работы с настройками скрипта. Эти настройки будут доступны в about:config и вы не сможете их удалить полностью, только перезаписать. Так что постарайтесь не сорить) Плагин предоставляет скудный интерфейс для управления настройками (по умолчанию внутри iframe).
Подключение плагина
// @require https://raw.github.com/sizzlemctwizzle/GM_config/master/gm_config.js
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_log
Внимание!
GM_log является обязательным разрешением при подключении GM_config, иначе этот скрипт не будет работать!
Методы плагина
// Установить настройки:
GM_setValue(name, objectValue);
// Получить настройки:
GM_getValue(name, objectDefault);
Скрипт подключения jQuery
// ==UserScript==
// @name Include jQuery 2.0.3
// @namespace includeJquery
// @include *
// @version 0.1
// @grant GM_registerMenuCommand
// ==/UserScript==
GM_registerMenuCommand('Подключить jQuery 2.0.3', includeJquery, 'j');
function includeJquery() {
includeScriptOnPage('//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js');
}
function includeScriptOnPage(url) {
var head = document.getElementsByTagName('head')[0],
script = document.createElement('script'),
protocol = unsafeWindow.location.protocol;
script.src= protocol + url;
head.appendChild(script);
}
#Userscript, #GreaseMonkey