Добрый вечер.

Помогите плиз с перехватом события onClick.
Пишу расширение и надо, чтобы у кнопки, если у нее есть аттрибут onclick, запустить сначала свой обработчик, а ТОЛЬКО потом ту функцию, которая была описана onclick'ом.

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

Выделить код

Код:

var element = new XPCNativeWrapper (getBrowser (). contentDocument. getNeededElement (...)). wrappedJSObject;
element. oldonclick = element. onclick;
element. onclick = function (event)
{
    ... // реализация моего обработчика
    element. oldonclick (event); // вызов старого обработчика
}

p.s.
Кроме того, можно назначить обработчик
[ol][oli]1. родительскому элементу.[/oli][oli]2. документу[/oli][oli]3. браузеру вкладки, в котором расположен документ.[/oli][/ol]

Спасибо огромное. Все заработало!

А кстати, зачем все-таки здесь XPCNativeWrapper?...

There are some commonly used properties and coding styles that cannot be used with XPCNativeWrapper. Specifically:

   1. Assigning to or reading an on* property on an XPCNativeWrapper of a DOM node or Window object will throw an exception. (Use addEventListener instead, and use "event.preventDefault();" in your handler if you used "return false;" before.)

(http://developer.mozilla.org/en/docs/XPCNativeWrapper)

Очень странно. У меня и без этого работает..8)

Не подскажете плиз заодно как получить доступ к содержимому текущего таба?

Waster пишет

Очень странно. У меня и без этого работает..8)

Я ведь не из расширения код проверял - у меня без wrapper'а не читало onclick.

как получить доступ к содержимому текущего таба

Выделить код

Код:

getBrowser (). contentDocument