Библиотека
Страница 4 из 4 < | >
Этот метод может использоваться UserJS для отмены глобальных переменных, определенных постоянными скриптами. Он имеет три параметра:
Строка приводит имя переменной, которая должна быть отменена.
Функция, которая должна выполняться каждый раз, когда скрипт пытается обратиться к содержимому переменной. Любое значение, возвращенное функцией, используется как значение переменной. Функцию будут передавать единственный параметр; текущее значение переменной.
Дополнительный; Функция, которая должна выполняться каждый раз, когда скрипт пытается установить значение переменной. Функцию будут передавать единственный параметр; значение, которое скрипт может записать в переменную. Если функция не определена, то вместо этого используется значение null.
Пример:
window.opera.defineMagicVariable( 'isGoodBrowser', function (curVal) { return true; }, function (newVal) { if(!newVal) { window.status = 'Repairing script'; } } );
Этот метод может использоваться UserJS для отмены глобальных функций, определенных постоянными скриптами. Он имеет два параметра:
Строка приводит имя переменной, которая должна быть отменена.
Функция, которая должна быть запущена вместо функции, определенной страницей. Функцию будут передавать следующие параметры:
‘this’ в реальной функции.magic функции).Например:
window.opera.defineMagicFunction( 'getLayer', function ( oRealFunc, oThis, oParam1, oParam2 ) { return oParam1.getElementById('oParam2').style; } );
Этот пример отменяет функцию ‘f’ . Если объект ‘this’ обращается к объекту ‘window’ , он возвращает false. В противном случае он вместо этого только выполнит реальную функцию:
window.opera.defineMagicFunction( 'f', function( real, thisObject ) { if( thisObject == window ) { return false; } else { return real.apply( thisObject, arguments.slice(2) ); } } );
Это родовой метод используется для добавления ожиданий событий скриптами UserJS. При обнаружении события, обработчик события передает объект '''UserJSEvent''' (который также доступен через ‘window.event‘). В дополнение к обычным свойствам события, в зависимости от того, какой тип события обнаружен, объект UserJSEvent может также заполнить свойства ‘element’ , ‘event’ , ‘listener’ , ‘eventCancelled’ , ‘propagationStopped’ , ‘source’ и ‘returnValue’ . Некоторые события могут быть прекращены используя preventDefault, и это может быть использовано для предотвращения выполнения скрипта или обработчика событий.
Ожидания событий пользовательских скриптов могут быть добавлены почти в любом месте UserJS-файла. Ожидания не могут быть добавлены функциями обработчика для регулярных событий, или сценариями, активизированными таймерами. Следующие события могут быть обнаружены:
Происходит в том случае, когда встречается элемент ‘SCRIPT’ с атрибутом ‘SRC’ . Элемент скрипта доступен в качестве атрибута элемента ‘UserJSEvent’ файла UserJS. Если отменено, то внешний код не загружается и элемент скрипта не выполняется. В дополнении, если он отменен, событие ‘BeforeScript’ не происходит.
Происходит до запуска элемента ‘SCRIPT’ . Элемент скрипта доступен в качестве атрибута элемента ‘UserJSEvent’ . Содержимое скрипта доступно в качестве свойства текста элемента скрипта, и также может быть перезаписано:
UserJSEvent.element.text = UserJSEvent.element.text.replace(/!=s*null/,'');
Событие ‘BeforeScript’ происходит для inline скрипта также, как и внешний скрипт, включая скрипты с типами, которые Opera нормально не может выполнять (например, VBScript). Если отменено, то элемент скрипта не запускается.
Происходит после того, как завершится выполнение элемента ‘SCRIPT’ . Элемент скрипта доступен в качестве атрибута элемента ‘UserJSEvent’ .
Происходит до того, как произошли события регулярного скрипта, независимо от того, было ли это событие обработано какими-нибудь обработчиками событий. Регулярное событие доступно в качестве атрибута события ‘UserJSEvent’ . Если отменено, то регулярное событие не происходит, выполняется его действие по-умолчанию, и любые ассоциированные события ‘BeforeEventListener’ не происходят.
Также, как и ‘BeforeEvent’ , но происходит только для событий определенных типов (например, ‘BeforeEvent.click‘). В Opera 8, если ожидания зарегистрированы для соответствования событию ‘BeforeEvent.type’ , то не происходит событие ‘BeforeEvent’ . В Opera 9 – происходят оба.
Происходит после того, как сработает и обработается регулярное событие, но до выполнения его действия по-умолчанию. Регулярное событие доступно в качестве атрибута события ‘UserJSEvent’ . Если отменено, то будут игнорироваться любые попытки обработчика регулярных событий отменить регулярное событие. Объект ‘UserJSEvent’ может также иметь свойство ‘eventCancelled’ , которое установится в ‘true’ , если любой обработчик регулярных событий отменит событие.
Также, как и ‘AfterEvent’ , но происходит только для событий определенных типов (например, ‘AfterEvent.click‘). В Opera 8, если ожидания зарегистрированы для соответствования событию ‘AfterEvent.type event’ , то не происходит событие ‘AfterEvent’ . В Opera 9 – происходят оба.
Происходит до вызова ожидания регулярного события. Регулярное событие доступно в качестве атрибута события ‘UserJSEvent’ , и вызываемое ожидание доступно в качестве ожидания ‘UserJSEvent’ . Если отменено, то не может быть вызвано ожидание регулярного события.
Также, как и ‘BeforeEventListener’ , но происходит только для событий определенных типов (например, ‘BeforeEventListener.click‘). В Opera 8, если ожидания зарегистрированы для соответствования событию ‘BeforeEventListener.type’ , то не происходит событие ‘BeforeEventListener’ . В Opera 9 – происходят оба.
Происходит после вызова ожидания регулярного события. Регулярное событие доступно в качестве атрибута события ‘UserJSEvent’ , и вызываемое ожидание доступно в качестве атрибута ожидания ‘UserJSEvent’ . Если отменено, то будут игнорироваться любые попытки обработчика регулярных событий отменить распространение регулярного события. Объект ‘UserJSEvent’ также имеет свойство ‘propagationStopped’ , которое установится в ‘true’ , если любой обработчик регулярных событий отменит распространение события.
Также, как и ‘AfterEventListener’ , но происходит только для событий определенных типов (например, ‘AfterEventListener.click‘). В Opera 8, если ожидания зарегистрированы для соответствования событию ‘AfterEventListener.type’ , то не происходит событие ‘AfterEventListener’ . В Opera 9 – происходят оба.
Происходит до выполнения ‘javascript:’ в URL. Код JavaScript, который должен быть выполнен (весь код в URL после ‘javascript:‘), доступен в качестве атрибута исходного кода ‘UserJSEvent’ , и также может быть перезаписан. Если отменено, то ‘javascript:’ в URL не выполняется.
Происходит после выполнения ‘javascript:’ в URL. выполненный код JavaScript (весь код в URL после ‘javascript:‘) доступен в качестве атрибута исходного кода ‘UserJSEvent’ , и любое значение, возвращенное этим кодом, доступно в качестве атрибута ‘returnValue’ события ‘UserJSEvent’ . Атрибут ‘returnValue’ также может быть перезаписан. Если отменено, то возвращенное значение не может быть использовано в качестве исходного кода новой страницы.
Метод может использоваться для удаления ожиданий событий UserJS, которые добавлены использованием ‘window.opera.addEventListener’ . Он не может использоваться в том случае, если ожидание добавлено в качестве анонимной функции. Для получения дополнительной информации, смотрите События W3C DOM Level 2 — Спецификация интерфейсов регистрации событий.
Этот метод может быть использован нормальными скриптами и UserJS для применения таблиц стилей XSL к текущему документу. Он имеет один параметр:
Любой документ, корневым элементом которого является или ‘xsl:stylesheet’ или ‘xsl:transform’ , или сам элемент ‘xsl:stylesheet’ .
При необходимости он может применяться несколько раз. Каждое преобразование будет применяться к результату предыдущего преобразования.
Пример:
window.opera.pushXSLTransform( (new DOMParser()).parseFromString( '<stylesheet '+ 'xmlns="http://www.w3.org/1999/XSL/Transform" '+ 'version="1.0"> ... </stylesheet>', 'text/xml' ) );
Этот метод может быть использован нормальными скриптами и UserJS для удаления последней таблицы стилей XSL, которая была применена с использованием ‘pushXSLTransform’ . Он не имеет никаких параметров.
Этот метод может быть использован UserJS для установки режима навигации по истории, который должна использовать Opera для текущего документа. Он имеет один параметр:
Одно из значений: ‘automatic’ , ‘compatible’ , или ‘fast’ .
Смотрите статью в базе знаний для получения дополнительной информации.
Возвращает последнее значение режима навигации по истории, которое установлено для текущего документа с использованием ‘setOverrideHistoryNavigationMode’ . По-умолчанию – в ‘automatic’ .
Это объект события, передаваемый в функции обработчика событий UserJS (он также доступен через ‘window.event‘). Также, как и обычные свойства объекта события, он имеет те, которые характерны для событий UserJS. В то время, как многие из свойств в UserJS используются редко (например, свойства ‘currentTarget’ , ‘srcElement’ , и ‘target’ – все они ссылаются на ‘window.opera‘), следующие свойства и методы являются самыми используемыми:
Объект, только чтение: элемент скрипта. Доступны все используемые DOM-методы, такие как ‘getAttribute’ и ‘setAttribute’ . Доступен для событий ‘BeforeExternalScript’ , ‘BeforeScript’ и ‘AfterScript’ .
Строка, чтение-запись: скрипт, который должен быть запущен. Доступна для событий ‘BeforeScript’ и ‘AfterScript’ . В отличии от нормальных скриптов страницы, UserJS позволяют смотреть исходный код скрипта из любого домена, а не только из того домена, из которого получена текущая страница.
Объект, только чтение: объект регулярного события. Доступен для событий ‘BeforeEvent’ и ‘AfterEvent’ .
Булев, только чтение: говорит если обработчик событий отменяет событие. Доступен для событий ‘AfterEvent’ .
Функция, только чтение: ссылка на функцию обработчика событий. Доступна для событий ‘BeforeEventListener’ и ‘AfterEventListener’ .
Функция, только чтение: предотвращает действия по-умолчанию, например: предотвращение запуска скрипта, предотвращения происхождения событий, или предотврещение блокировки обработчиком событий подтверждения формы. Доступна для всех событий, но не имеет эффекта с событиями ‘AfterScript’ .
Булев, чтение-запись: говорит если обработчик событий останавливает распространение события. Доступен для событий ‘AfterEventListener’ .
Строка, чтение-запись: значение, возвращенное скриптом. Доступна для событий ‘AfterJavascriptURL’ .
Строка, чтение-запись: скрипт, который должен запуститься, или который уже выполнился. Доступна для событий ‘BeforeJavascriptURL’ и ‘AfterJavascriptURL’ .
Строка, только чтение: тип обнаруженного события; например: ‘BeforeJavascriptURL’. Доступен для всех событий.
Страница 4 из 4 < | >
Оригинал страницы: Take Control with User JavaScript — Specifications
Copyright Opera Software ASA. Все права зарезервированы
OperaFan.net, 2007. Ermir, неофициальный перевод.