GreaseMonkey. Шаблон пользовательского скрипта

Категория: JavaScript

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

категория: JavaScript