UserJS загружаются и исполняются так, как если бы они были частью посещаемой вами страницы. Они запускаются сразу до запуска первого скрипта на странице. Если страница не содержит никаких собственных скриптов, то UserJS будут запускаться немедленно не дожидаясь окончания загрузки страницы. Они обычно запускаются до DOM для загруженной страницы. (Примите во внимание, что это не применимо к Greasemonkey-скриптам. Дополнительная информация дана в приведенном ниже примере Greasemonkey-скрипта.) UserJS не будет загружаться на страницах, к которым обращаются, используя протокол opera:. По-умолчанию, они также не загружаются на страницах, к которым обращаются, используя протокол https:.
UserJS в состоянии делать то же, что и любой нормальный сценарий, включая такие вещи, как распознавание событий, создание переменных, создание функций и чтение cookies, которые сохраняются со страницы. Кроме того, UserJS в состоянии выполнять некоторые дополнительные функции. Они в состоянии контролировать разрешения загрузку скриптов на странице, при необходимости перезаписывать собственные скрипты страницы, прерывать события, которые распознаются страницей, изменять детали событий, и отменять переменные и функции, используемые страницей.
Для обеспечения дополнительной функциональности, у объекта window.opera есть четыре метода:
Они описаны более подробно позже. Предупреждение: Эти методы эффективны только при обращении к ним из пользовательского JavaScript, а любые обращения к ним из постоянных скриптов страницы будут игнорироваться.
Для включения UserJS, используйте Инструменты > Настройки > Дополнительно > Содержимое > Параметры JavaScript..., и выберите директорию, в которой вы хотите расположить ваши UserJS-файлы. Opera будет загружать все файлы из определенной директории, имя которых заканчивается на “.js” и будет использовать их в качестве UserJS-файлов. Если имя файла оканчивается на “.user.js”, то он будет предполагать использование разметки Greasemonkey.
Для того, чтобы написать свой собственный UserJS, используйте для создания JavaScript-файла текстовой редактор, и сохраните его в вашей директории UserJS. Файл будет автоматически загружаться каждый раз при загрузке страницы в Opera. Нет необходимости в перезапуске Opera для применения изменений в файлах UserJS.
Для того, чтобы данный скрипта не выполнялся на страницах, где он не применим, лучше сначала проверить, соответствует ли адрес страницы желательному адресу, а только потом вносить каждое дополнение или исправление, если оно применимо на текущей странице. Сбой выполнения этой проверки там, где необходимо, мог привести к ошибке или сбою работы. Два возможных способа проверить адрес страницы:
if( location.hostname.indexOf('example.com') != -1 ) { if( location.href.match(/^http://example.com/resources//) ) {
Чтобы предотвратить конфликты с любыми скриптами на странице, для распознавании событий лучше всего использовать DOM-метод addEventListener. Использование традиционных моделей регистрации событий, таких как window.onload = myfunction; не рекомендуется. Также предпочтительно использование в обработчике событий там, где только это возможно, анонимных функций.
Для того, чтобы UserJS-файл использовался только на определенных страницах, добавьте в начало файла скрипта следующий блок комментариев:
// ==UserScript== // @include http://example.com/* // @include http://www.example.com/* // @exclude http://example.com/directory/* // @exclude http://www.example.com/example.html // ==/UserScript==
Вы можете использовать столько записей @include и @exclude, сколько потребуется для описания необходимых адресов страниц.
Для обеспечения вашей безопасности, UserJS по-умолчанию отключены на страницах, к которым обращаются, используя протокол https:. Если вы хотите запускать UserJSs на этих страницах – вам необходимо включить настройку User Javascript on HTTPS в opera:config.
Если вы включите UserJS на защищенных страницах, вы должны быть уверены, что скрипты, которые содержаться в директории UserJSs, безопасны для использования, особенно если вы используете скрипты, написанные другими авторами. Если вы включите эту опцию, то при первом в этом сеансе браузера посещении защищенной страницы у вас будет запрошено разрешение на запуск UserJS.
Оригинал страницы: Take Control with User JavaScript — Utilizing User JavaScript
Copyright Opera Software ASA. Все права зарезервированы
2007. OperaFan.net. Ermir, неофициальный перевод.