Как известно, пользовательские скрипты (далее просто "скрипты" или "UserJS") применяются для изменения и дополнения содержимого веб-страниц необходимыми функциями.
Ниже, в алфавитном порядке, приведены описания свыше 70 наиболее известных скриптов для браузера Opera.
Напомню, что для установки UserJS достаточно скопировать файл в вашу папку UserJS. Если её ещё нет, то создайте папку (например, Opera\userjs) и укажите её в меню Настройки→Дополнительно→Содержимое→Настройки Javascript.
Нужно отметить, что если вы до этого изменяли "Настройки для сайта", то скрипты на этих сайтах могут не заработать и потребуется правка override.ini.
Также следует заметить, что в Opera 9.5+ несколько изменена работа со скриптами, точнее исправлен баг с неверным считыванием интернациональных символов. И соответственно, скрипты содержащие такие символы, следует пересохранить в кодировке UTF-8, без BOM.
alt2title.js - Если не задан тэг Title, то копирует в него содержимое тэга Alt. Это нужно для "правильного" отображения тэга Alt в качестве всплывающей подсказки у картинок, как это делает IE. (
let-me-see-img.js обычно лучше)
autocopy.js - Копирует выделенный текст с форматированием в буфер обмена. Только для Windows.
autosizer.js - Подгоняет размер изображений открытых на отдельной странице. Включает режимы "Original", "Shrink to Fit", "Maximize", "Fit to Width" и "Fit to Height". Обновлённая версия
здесь. А
здесь версия для Opera 9.5.
bbcode.js - Вставляет в форму ответа любые BBCode и HTML тэги.
block-external-scripts.js - Блокирует загрузку скриптов с других доменов. Это убирает рекламу реализованную на js, например, Google AdSense или "всплывающие окна v2.0", наподобие
этого.
blockexternal.js - Блокирует скрипты, картинки, фрэймы и флэшки с других доменов. В большинстве случаев это реклама. Имеется белый список.
block_external.js - Более продвинутая вариация на ту же тему от
Mikivanch. Кроме прочего, позволяет блокировать картинки по размеру. Не блокирует скрипты.
bug-me-not.js - Используя сервис
BugMeNot.com ищет логины и пароли для сайтов требующих аутентификации. Вызывается по Ctrl+Shift+Double Click. Версия для Opera 10 есть
здесь.
convert2phf.js - Сохраняет страницу в phf или mht. Страница сохраняется со всеми изменениями сделанными с помощью javascript.
coolirisalike.js - При зажатии Ctrl и наведении курсора мышки на ссылку, показывает окно предпросмотра. (попытка реализовать аналог Firefox-ового расширения
Cooliris Previews).
devConsole.js - Консоль разработчика. Для работы в качестве UserJS замените первую строчку «(function()» на «function ujs_devConsole()», а последнюю «})()» на«}» и используйте кнопку:
Консоль разработчика.
disable-script.js - Блокирует все скрипты на сайтах, но позволяет использовать UserJS.
dlembed.js - Двойной клик по пустому месту страницы, добавит перед каждой флэшкой ссылку для её скачивания. Существует
версия в виде кнопки.
DocumentViewer.js - Показ в браузере документов формата pdf, ppt, doc, xls используя веб-сервисы.
fix-content-type.js - Исправляет веб страницы, которые неправильно отдаются сервером как plain text (вместо HTML).
fix-long-title.js - Opera не может сохранить страницы со слишком длинным заголовком. Скрипт это исправляет.
FlashBlock.js - Флэшблокер для Opera 9. Аналог расширения
Flashblock для Firefox. Отключить блокирование флэша на текущем сайте, можно с помощью хоткея Ctrl+Shift+F.
get-link-info.js - Выдаёт информацию о ссылке. А именно: размер, дату, контент тип. Достаточно глюкав и потребляет больше трафика чем отдельные утилиты. Настоятельно рекомендуется применить
фикс.
highlighter.js - Подсвечивание результатов поиска. В том числе в Google и с использованием регулярных выражений.
HighlightText.js - При нажатии на кнопку, изменяет цвет текущего выделения на жёлтый и запоминает это в кукисах. Аналог расширения
Line Marker для FireFox.
keyboard.userjs.js - Виртуальная клавиатура, которая добавляется к тестовым полям на странице.
let-me-see-img.js - На месте невидимых незагруженных изображений показывает рамку. Кроме того, укорачивает слишком длинные надписи на месте изображений и копирует содержимое тега alt в title.
linkifier.js - Делает кликабельными текстовые ссылки. Могут быть проблемы со скоростью.
logger.js - Записывает в файл историю посещённых страниц. Нужна Java.
mouse-gesture-track.js - Служит для визуализации мышиных жестов. Должна стоять галочка "Позволить контролировать правую кнопку мыши". Версия для старых версий Opera находится
здесь. А вариант использующий canvas
здесь.
multipopup.js - Красивые полупрозрачные подсказки с дополнительными возможностями. Не забудьте отключить
встроенные. Достаточно конфликтен.
open-in-new-window.js - Заставляет все ссылки открываться на новой странице. Работает только на сайтах указанных в начале скрипта.
open_browser.js - Открывает указанные сайты в заданном браузере. Только для Windows.
ops.js - Автозаполнение форм. Ещё два варианта есть
здесь.
ospell.js - Онлайн проверка орфографии в форме ответа. Для включения русского, поставьте: «ENGINE: 1» и «defaultLang: 'ru'».
pdfHandler.js - Избавляет от пустой страницы при открытии файлов *.pdf, *.doc и *.xls.
removeblank.user.js - Удаляет все атрибуты «target="_blank"», которые вызывают открытие ссылки на новой странице.
safe-alert.js - Позволяет остановить появление alert-ов на странице.
scroller.js - Даёт возможность скроллить страницу, зажав Ctrl и левую кнопку и передвигая мышь.
seobar3.js - Инструмент для специалистов по продвижению веб-сайтов. Для открытой в браузере страницы SEObar может отображать следующую информацию: Alexa Traffic Rank, Google Page Rank, Тематический индекс цитирования Яндекса.
show-ip.js - Показывает в нижней части страницы, IP текущего сайта (для чего нужна Java) и ваш собственный.
snap-links.js - Позволяет открыть сразу много ссылок, просто обведя их.
titleprotector.js - Не позволяет страницам менять заголовок окна браузера с помощью JavaScript.
xerath-plugsome-toolbar.js - Показывает возле каждой флэшки панельку с кнопками Reload, Save, Play и Pause. Две последних работают не везде.
xerath-power-drag.js - Позволяет изменять размер textarea (формы ответа) и изображений с помощью мышки.
xml-tree.user.js - Показывает XML файлы в виде дерева и с подсветкой синтаксиса.
zz-spoof-id.js - При выборе в браузере маскировки под IE или Firefox, обеспечивает полную маскировку и для javascript, убирая window.opera и создавая некоторые специфичные для этих браузеров свойства. Существует дополнительный
скрипт для Opera 9.5+, который эмулирует
эту особенность IE, нужную на некоторых сайтах.
Сайт специфичные скрипты
adfind.js - Скрипт дополняет поиск в
Google, другими поисковыми системами - как это делается в Яндексе или МЕТЕ.
lj_unfolder.user.js - А этот скрипт добавляет в
ЖЖ, возможность подгружать комментарии из длинных тредов прямо в страницу.
Микро-faq для разработчиков
Q: Что из себя представляет userjs?
A: Это обычный javascript, выполняемый на каждой странице (впрочем, это
настраиваемо) и в её контексте. Из последнего следует, что вам следует избегать создания глобальных переменных и функций, которые могут конфликтовать с имеющимися на странице (обычным решением является использование анонимной функции). Кроме того, userjs способны использовать
несколько функций из объекта window.opera, недоступных обычным скриптам и предназначенных, в основном, для исправления ошибок на веб-страницах. Познакомиться с некоторыми тонкостями написания userjs, можно на
userjs.org.
Q: В какой момент он запускается?
A: Перед первым скриптом на странице, а при отсутствии скриптов аналогично "DOMContentLoaded", т.е. после загрузки самой страницы (только страницы, без изображений и т.п.). Учитывая, что скрипты обычно присутствуют уже в "<head>", в большинстве случаев userjs будет запускаться ещё до загрузки "<body>". Так что если вам нужна работа с DOM, потребуется использовать document.addEventListener('DOMContentLoaded', function(){...}, false).
Q: Почему userjs не работают на https?
A: Из соображений безопасности. Но вы можете включить это
здесь.
Некоторые баги:
«window.getSelection()» - Теряются переносы строк. Используйте «document.getSelection()» или посмотрите как обойдён этот баг в
quick-reply.js.
«window.getSelection().containsNode()» - Всегда false.
«document.selection.type» - «None», даже если существует выделение. Opera 9.5+.
«mousedown» - Перестаёт работать драг-н-дроп на странице. Используйте вместо него «BeforeEvent.mousedown».
© А. Рузанов, 16.03.2008 (обновлено 27.03.2009)