Итак начнем с простого пользовательского скрипта, но имеющего новое и отличное от всех до этого разных Рюшечек. А именно - я применяю новые команды-функции и возможности и делаю на до боли известной конструкции - это установка блока "Поделится" на любую страницу в инете.
Используется конструкция от Яндекса - «Поделиться», но не совсем обычным для этого применения способом.
Сначала расширением Scriptish - мы втянем сам скрипт в наш браузер, и тем самым в будущем мы будем его грузить не из инета, а из компьютера, а потом пунктом в меню синтезируется строчка с иконками для доступа к инструментам социальных сетей.
Блок мета-даных имеет вид
// ==UserScript== // @id all@alex.zest // @name all-blog // @version 1.0 // @namespace http://cargan.cervera.ru/yaru // @author Alex Zest // @description Общие функции и меню // @include * // @require http://yandex.st/share/share.js // @resource ic http://yandex.st/share/static/b-share-icon.png // @run-at document-end // ==/UserScript==
Основные ключи понятны, и только некоторые ключи нуждаются в пояснении:
- ключ
@include *
говорит расширению, что данный скрипт используется везде,
- а фраза
@require http://yandex.st/share/share.js
указывает расширению о загрузке извне необходимого для работы скрипта.
- *1 для ускорения загрузки и исполнении скрипта введено допонительное улучшение, а именно
// @resource ic http://yandex.st/share/static/b-share-icon.png
- теперь фооновое изображение всех значков так же загружено во внутренне хранилище Scriptish
И далее непосредственно с помощью функции регистратора загружаем нам необходимый контент в пункт меню.
GM_registerMenuCommand("Поделиться", function(){ var s = document.createElement('script'); s.type='text/javascript'; s.src='//yandex.st/share/share.js'; document.body.appendChild(s); s = document.createElement('mark'); s.setAttribute('id','sh'); s.className = 'yashare-auto-init'; s.setAttribute('data-yashareType','none'); s.setAttribute('data-yashareQuickServices', 'yaru,lj,facebook,twitter,'+ 'gplus,blogger,yazakladki'); document.body.appendChild(s); });
В отличии от варианта предложенный Яндексом, я не использую кнопку 'поделится', и вместо div использую тег mark, причем вся конструкция жестко фиксируется в нижнем правом углу окна и не зависимо от скрола видна постоянно и все стили данного сктиптиша размещены в специальном стиле, который вставляется через расширение Stylish
#sh { position:fixed; right:5px; bottom:5px; padding:2px; z-index:10000 }
Так же дополнительно был вставлен пункт меню - "Новый UIID", чтобы если потребуется оперативно - всегда был под рукой.
GM_registerMenuCommand( "Новый UIID", function(){ alert(GM_generateUUID()) ; }) ;*1 - улучшения сделаные позже