Есть скрипты, в которых гифка преобразуется в data:uri, и в ней подменяются байты, отвечающие за скорость анимации.
Я не проверял, работает ли такой подход, и не знаю, насколько он оправдан.
Юзерскрипты в GreaseMonkey запускаются в песочнице, где unsafeWindow определено изначально.
В Google Chrome юзерскрипты запускаются в замыкании, в котором есть параметр unsafeWindow, но как показала практика он не несёт особого смысла.
В Opera переменной unsafeWindow не существует — ссылка не определена. Интерпретатор выдаст
Undefined variable: unsafeWindow
.
Вы можете проверить это сами, создайте юзерскрипт со следующим содержанием и проверьте его исполнение в опера (заодно посмотрите, через какую ж как неудобно в опере устанавливать юзерскрипты):
Обычно одним из немаловажных плюсов юзерскриптов является наличие «правильного» User-Agent.
Это делает запросы скрипта «неотличимыми» от запросов, сделанных пользователем.
Вообще, используя юзерскрипты удобно писать ботов для различных сайтов.
При правильном подходе можно добиться того, что бота можно вычислить только по нечеловеческому поведению (у среднестатистического бота просматривается чёткий паттерн поведения, отличный от человеческого).
На самом деле это хорошая идея — использовать TamperMonkey.
Но проблемы начинаются тогда, когда вам нужно привлекать пользователей.
Предположим, у вас есть сайт. И на этом сайте вы активно пропогандируете некий полезнейший скрипт.
Как показывает статистика, только 10% пользователей, посетивших вашу целевую страницу, установят скрипт.
Проблем несколько, но самых важных, на мой взгляд, две:
1. Пользователи не доверяют «непонятным» скриптам и программам.
2. Пользователи не умеют устанавливать скрипты в свои браузеры.
Если первую проблему решить в локальном масштабе довольно сложно, то вторая проблема может быть уменьшена следующими способами:
1. Пакуем скрипт в расширение и добавляем на официальные страницы расширений. (Этот способ я лично не проверял, но отзывы слышал очень лестные.)
2. Уменьшаем число необходимых расширений для запуска скрипта. (Этот способ даёт около +5% установок пользователями Google Chrome).
Статистические данные анализировались на нескольких средних проектов (до 5000 пользователей юзерскриптов).
Простой способ упаковывания юзерскриптов в расширения для хрома я обещаю осветить в следующей статье (шаблон опять одинаковый и может быть использован во всех последующих юзерскриптах).
Если вы «не бум-бум» в JS, то самое время начать его изучать. Как показал мой небогатый опыт, человек, не знакомый с javascript и программированием (нулевой уровень), может освоить javascript и написание юзерскриптов за пол года.
Если у вас есть знакомый javascript-порграммист (или веб-программист в общем случае), начните осаждать его вопросами (в умеренном количестве). Любой грамотный программист поможет вам советом.
Если такого знакомого нет — начните с форумов. На userscripts.orgна самом деле отзывчивый и дружелюбный к новичкам форум. Одна проблема — он на английском.
Русскоязычных аналогов мне, к сожалению, не известно.
Что касается «конструктора», то рецепт для «непрограммистов» есть в статье.
Вам осталось найти адекватного программиста, который «вправит вам мозги» и направит на путь постижения javascript :)
От юзерскрипта до расширения в некоторых случая «рукой подать».
У меня зреет статья с чуть более глубоким описанием кроссбраузерной разработки юзерскриптов. В ней я опишу конкретные проблемы, которые встречаются в каждом браузере.
Так вот, для того, чтобы решить большую часть «продвинутых» проблем (к примеру, не доступный document.frames[i].parent) в Google Chrome, скрипт приходится упаковывать в простейшее расширение.
Спасибо за наводку на Kango, я этот фреймворк как-то упустил. Потестирую на новых проектах.
Минус в том, что скрипт надо запускать руками. А какие плюсы, кроме как отсутствие ограничений окружения?
Есть скрипты, в которых гифка преобразуется в data:uri, и в ней подменяются байты, отвечающие за скорость анимации.
Я не проверял, работает ли такой подход, и не знаю, насколько он оправдан.
К тому же, его можно переписать как
В этом случае у нас будет объект unsafeWindow, привычный разработчикам под GreaseMonkey :)
Но я считаю, что это дело вкуса.
Юзерскрипты в GreaseMonkey запускаются в песочнице, где unsafeWindow определено изначально.
В Google Chrome юзерскрипты запускаются в замыкании, в котором есть параметр unsafeWindow, но как показала практика он не несёт особого смысла.
В Opera переменной unsafeWindow не существует — ссылка не определена. Интерпретатор выдаст .
Вы можете проверить это сами, создайте юзерскрипт со следующим содержанием и проверьте его исполнение в опера (заодно посмотрите,
через какую жкак неудобно в опере устанавливать юзерскрипты):После установки скрипта зайдите на хабр и посмотрите в консоль ошибок (Shift+Ctrl+O).
Правильным является вариант, указанный в шаблоне.
Это делает запросы скрипта «неотличимыми» от запросов, сделанных пользователем.
Вообще, используя юзерскрипты удобно писать ботов для различных сайтов.
При правильном подходе можно добиться того, что бота можно вычислить только по нечеловеческому поведению (у среднестатистического бота просматривается чёткий паттерн поведения, отличный от человеческого).
Но проблемы начинаются тогда, когда вам нужно привлекать пользователей.
Предположим, у вас есть сайт. И на этом сайте вы активно пропогандируете некий полезнейший скрипт.
Как показывает статистика, только 10% пользователей, посетивших вашу целевую страницу, установят скрипт.
Проблем несколько, но самых важных, на мой взгляд, две:
1. Пользователи не доверяют «непонятным» скриптам и программам.
2. Пользователи не умеют устанавливать скрипты в свои браузеры.
Если первую проблему решить в локальном масштабе довольно сложно, то вторая проблема может быть уменьшена следующими способами:
1. Пакуем скрипт в расширение и добавляем на официальные страницы расширений. (Этот способ я лично не проверял, но отзывы слышал очень лестные.)
2. Уменьшаем число необходимых расширений для запуска скрипта. (Этот способ даёт около +5% установок пользователями Google Chrome).
Статистические данные анализировались на нескольких средних проектов (до 5000 пользователей юзерскриптов).
Простой способ упаковывания юзерскриптов в расширения для хрома я обещаю осветить в следующей статье (шаблон опять одинаковый и может быть использован во всех последующих юзерскриптах).
небогатыйопыт, человек, не знакомый с javascript и программированием (нулевой уровень), может освоить javascript и написание юзерскриптов за пол года.Если у вас есть знакомый javascript-порграммист (или веб-программист в общем случае), начните осаждать его вопросами (в умеренном количестве). Любой грамотный программист поможет вам советом.
Если такого знакомого нет — начните с форумов. На userscripts.org на самом деле отзывчивый и дружелюбный к новичкам форум. Одна проблема — он на английском.
Русскоязычных аналогов мне, к сожалению, не известно.
Что касается «конструктора», то рецепт для «непрограммистов» есть в статье.
Вам осталось найти адекватного программиста, который «вправит вам мозги» и направит на путь постижения javascript :)
У меня зреет статья с чуть более глубоким описанием кроссбраузерной разработки юзерскриптов. В ней я опишу конкретные проблемы, которые встречаются в каждом браузере.
Так вот, для того, чтобы решить большую часть «продвинутых» проблем (к примеру, не доступный document.frames[i].parent) в Google Chrome, скрипт приходится упаковывать в простейшее расширение.
Спасибо за наводку на Kango, я этот фреймворк как-то упустил. Потестирую на новых проектах.