Что такое Userscripts

Что такое Userscripts. Чуть чуть теории.

Постановка задачи

Рано или поздно у любого программера или сайтостроителя возникает зудящая мысль: что-то подправить на сайте, где он гость или пользователь. Увы, на чужом сайте он сделать ничего не может. Он просто элементарно не имеет доступа к коду.

Тем не менее, поправить очень хочется. Например, на неком сайте с полезным контентом вдруг сверху, как гильотина, падает рекламный блок. После испуга возникает раздражение: «Я это здесь разве просил? Оно мне нужно?»

Или такой пример. Когда число знакомых в некой социальной сети (наш instantcms.ru тому пример) превышает некое пороговое значение, их уже тяжело удержать в голове. Хотелось бы иметь некую записную книжку. Держать описания сетевых знакомых на отдельном файле, открывать его, когда сидишь в социальной сети и сверяться с ним? Фи, как пОшло в 21-м веке, в мире автоматизации и прогресса.

скачать бесплатно ява скрипт

подключить javascript к html

скрипты lua

как установить клео

яндекс браузер включить java

Хотелось бы иметь на сайте социальной сети автоматическую записную книжку, которая была бы всегда под рукой, в которую Вы можете вписать краткую характеристику о неком юзере: «Обманула меня в феврале 2015 года, заказала компонент, отказалась, когда он был уже готов, не выплатила гонорар», или «Этот ваще идиот и толстый тролль, сперва приписывает оппоненту гадости, потом заявляет, что оппонент в них уже уличен, а потом приписывает себе победу, хотя оппонент находится оффлайн», или «Потрясающе умная девочка, отличный программер, жалко, редко появляется», или «Мутное чмо с прогрессирущим ПГМ».

Или: на неком интернет-магазине очень неудобно переходить в перечень старых заказов. Приходится листать их интерфейс (который писал какой-то школьник с пофигизмом на удобство пользователя) или где-то запоминать (в другом отдельном файле) адрес страницы, который затем следует вставлять через буфер в адресную строку. Вот бы вставить туда кнопку, пнув которую, можно сразу попасть на нужную страницу!

Но, как говорится, фигвам.

Однако, если нельзя, но очень хочется, то все-таки можно )))

Что это такое — Userscripts, и зачем они нафиг нужны?

Usercripts — это пользовательский скрипт. Я для него нашел несколько прозвищ — юзерсрипт, мезонин, надстройка, пользовательское расширение.

Он пишется на привычном нам js и хранится на локальной машине. При известной ловкости, к этому скрипту можно подключить jquery и наслаждаться дивными удобствами этой библиотеки.

Пролегомены к всемогуществу* (с)

Работает эта машинерия так. Браузер при своем запуске загружает в память userscript’ы и применяет их к КАЖДОЙ открытой странице. Таким образом, после загрузки страницы к ней дополнительно подсаживается ваш userscript на js или jquery. А js (а уж, тем более, jquery) позволяет делать с DOM страницы вообще все что угодно. Смекаете, как вкусно пахнет?

Поскольку этот скрипт хранится на локальной машине, и на ней же запускается, никто не в силах (даже великий и ужасный Fuze) запретить мне вешать поверх страниц instantcms.ru заметки из моей записной книжки про разных юзеров. Естественно, поскольку мезонин применяется ко всем открытым в браузере страницам, в коде следует предусмотреть простое условие, чтобы ваше пользовательское расширение применялось к странице с конкретным доменным именем.

При этом я могу писать в мою записную книжку все, что я думаю. Никто не в силах остановить меня, если я вознамерился повыключать на нужном мне сайте раздражающую рекламу. Незачем теперь писать в саппорт, чтобы мне написали в ответ «Спасибо, ваша просьба передана разработчикам», если я и сам могу модернизировать интерфейс чужого сайта. Никто не в силах остановить моего всемогущества, если я грамотно применяю userscripts! Во как.

Если все так хорошо, почему все так плохо?

Набрав в поиске на instantcms.ru слово «userscripts» я получил сакральную фразу «По запросу «userscripts» ничего не найдено». Аналогичную фразу я получил, набрав «пользовательский скрипт». А получив, сел писать эту статью.

Удивительно, что никто из наших гениальных разработчиков до сих пор не напал на эту золотую жилу. А тем не менее, множество продвинутых людей во всем мире этим всемогуществом пользуются. Ведь, если скрипт написан, он может быть опубликован. Например, множество скриптов можно найти на сайте userscripts.org. Более того, существуют репозитории с удобными API, где можно скачать нужный скрипт или удаленно хранить информацию.

Например, FireFox позволяет загрузить расширение GreaseMonkey. После этого использование пользовательских скриптом вообще переходит в детскую забаву — достаточно перетащить иконку скрипта из репозитория себе в браузер.

Chrome ( а с недавних пор и Opera, которая перехала на webKit) поддерживает расширение TamperMonkey, использование которого аналогично GreaseMonkey. Увы, часто бывает, что скрипты, работающие в одной «Обезьяне» не работают на другой.

Чтобы написать действительно кроссбраузерный скрипт, приходится отказываться от API, и полагаться на свои силы.

Структура пользовательского скрипта

Скрипт состоит всего из двух файлов. Эти файлы могут лежать в любой папке на вашем диске и обязательно в одной.

Первому файлу имя вы даете сами, но расширение у файла должно быть обязательно *.user.js. Его вы пишете сами, на js, применяя для его оформления несколько простых правил. Или скачиваете из сети.

Второй файл, manifest.json или манифест, или заголовок, идет в комплекте к первому. Это обычный json-объект, куда помещается вся инфа о вашем пользовательском скрипте. Он должен быть в родительской папке единственным (иначе файловая система, которая ненавидит держать в одной папке два файла с одним именем, один из них переименует в manifest(1).json. Браузер «схватит» файл manifest.json, а не ваш manifest(1).json, что может привести к косякам). Переименовывать или удалять этот файл — означает вызвать недоумение у браузера и ругань с его стороны.

Как ставить userscript себе в браузер

Opera

Chrome

FireFox

О подводных камнях

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

Вся загвоздка в том, что скрипт попадает на ВАШУ локальную машину и запускается на ней. Скрипт получает полный контроль над ВСЕМИ страницами, которые открыты в браузере. Например, чужой скрипт может попытаться стырить у вас пароли, переслав их хозяину (аякс для того и придуман!). Короче, запуская у себя посторонние скрипты, хотя бы откройте их код и почитайте, что натворил там его автор. Не можете разобраться сами — попросите профи, который пишет на js и которому Вы доверяете. Другими словами, будьте осторожны.

Прощание

Вот и все на сегодня. В ближайшее время ждите от меня пользовательские скрипты. На подходе — записная книжка. Показывает на тех юзеров, которые в нее попали, и в виде всплывающей подсказки дает им характеристику, которые вами же им и даны. Причем строгий Fuze про это хулиганство знать не будет)))

—-
* «Пролегомены к всемогуществу» — так называется пятая глава знаменитой «Суммы технологии» Станислава Лема. Опубликованная еще в 1961 году (когда компьютеры были ламповыми и занимали квартал), эта книга интересна уже тем, что предсказала многие технические достижения нашей эпохи. Например, такие, как Интернет, виртуальная реальность, генная инженерия и многие другие. Уже одно это заставляет преклонятся перед интеллектуальной мощью Лема. Однако эта книга устремлена в глубокое будущее. В ней описаны многие невероятные и восхитительные (но тем не менее, достижимые с помощью науки и техники) чудеса. Не буду пересказывать их здесь, чтобы не сбивать удовольствие у тех, кто эту книгу еще не прочел, но собрался прочесть.

Источник: http://instantcms.ru/blogs/stranyi-blog/chto-takoe-mezoniny-ili-userscripts-chut-chut-teori.html

This entry was posted in Userscripts как написать and tagged , , , , , . Bookmark the <a href="http://iprowebber.ru/chto-takoe-userscripts/" title="Permalink to Что такое Userscripts" rel="bookmark">permalink</a>.

Comments are closed.