Полезная информация

Пользователи не любят читать документацию. Станьте оригинальным, будьте не как все. Ознакомьтесь с нашей базой знаний.

№124-03-2007 04:07:53

Merlyel
псЫх
 
Группа: Extensions
Откуда: Уфа
Зарегистрирован: 20-12-2005
Сообщений: 2415
UA: Firefox 2.0

Изменение существующей функции?

Есть кнопка (ну и соотв. пункт меню), у которой есть параметр

Выделить код

Код:

oncommand = goDoCommand('cmd_function')

Так как на команду cmd_function могут ссылаться несколько кнопок/пунктов меню, то желательно исправить саму команду, а не перебирать судорожно кнопки :) Можно ли это как-то сделать, т.е. чтобы вместо cmd_function выполнялось, для примера, что-то типа:

Выделить код

Код:

alert('alert'); cmd_function();

жЫзнь рандомна... и ничего с этим не поделаешь ;)

Отсутствует

 

№224-03-2007 19:01:48

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 2.0
Веб-сайт

Re: Изменение существующей функции?

Можно ли это как-то сделать, т.е. чтобы вместо cmd_function выполнялось, для примера, что-то типа:

Telepat mode on ... no extra data available ... telepat mode off

Можно.

Выделить код

Код:

window. eval
(
	goDoCommand. toString (). replace (/\{/, "{if(command=='cmd_function')alert('alert');")
)

Отредактировано Anton (24-03-2007 19:06:42)


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№325-03-2007 01:21:32

Merlyel
псЫх
 
Группа: Extensions
Откуда: Уфа
Зарегистрирован: 20-12-2005
Сообщений: 2415
UA: Firefox 2.0

Re: Изменение существующей функции?

Anton
Спс, попробуем :) О результатах отпишемся :)


жЫзнь рандомна... и ничего с этим не поделаешь ;)

Отсутствует

 

№427-03-2007 23:24:56

Merlyel
псЫх
 
Группа: Extensions
Откуда: Уфа
Зарегистрирован: 20-12-2005
Сообщений: 2415
UA: Firefox 2.0

Re: Изменение существующей функции?

Anton
Только добрался до разборки :)

Выделить код

Код:

window.eval
(
    goDoCommand.toString().replace(/\{/, "{ if (command =='cmd_function') alert('alert');")
)

А как же функция cmd_function? Она в таком случае все равно сработает?

Добавлено Втр 27 Мар 2007 23:51:09 :
А куда повесить этот window.eval? Расширениями-то я немного занимался, но в том и проблема, что только немного. :)

Вся картинка: в tb есть кнопочка "получить почту", на ней команда висит goDoCommand('cmd_getNewMessages'). Надо добавить перед/после goDoCommand(...) еще команду :)


жЫзнь рандомна... и ничего с этим не поделаешь ;)

Отсутствует

 

№528-03-2007 17:58:22

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 2.0
Веб-сайт

Re: Изменение существующей функции?

А как же функция cmd_function? Она в таком случае все равно сработает?

Сработает.

А куда повесить этот window.eval?

Куда угодно, лишь бы eval выполнился и подменил начало функции goDoCommand. Какой конкректно *.xul должен быть перекрыт оверлеем с нужным <script в tb я не знаю (вернее, лень копать). Да, и ещё нужна проверка, чтобы eval отработал только один раз.
Как вариант, можно переопределить функцию MsgGetMessage или сделать свой контроллер аналогично тому, как это делается в файлах messageWindow.js или mail3PaneWindowCommands.js и вставить его в top.controllers перед дефолтными контроллерами.

в tb есть кнопочка "получить почту", на ней команда висит goDoCommand('cmd_getNewMessages'). Надо добавить перед/после goDoCommand(...) еще команду

С этого и надо было начинать. Перекрой оверлеем нужную кнопку и сделай ей атрибут

Выделить код

Код:

command="before_action;goDoCommand('cmd_getNewMessages');after_command;"

Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№628-03-2007 20:49:27

Merlyel
псЫх
 
Группа: Extensions
Откуда: Уфа
Зарегистрирован: 20-12-2005
Сообщений: 2415
UA: Firefox 2.0

Re: Изменение существующей функции?

Anton

С этого и надо было начинать. Перекрой оверлеем нужную кнопку и сделай ей атрибут

Я же говорю - оверлеем можно было бы кнопку перекрыть, но ведь та же команда может висеть и на каком-нибудь пункте меню :) Или не так? :)


жЫзнь рандомна... и ничего с этим не поделаешь ;)

Отсутствует

 

№728-03-2007 22:03:15

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 2.0
Веб-сайт

Re: Изменение существующей функции?

Я же говорю...

Где, когда, кому ?


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№828-03-2007 22:13:40

Merlyel
псЫх
 
Группа: Extensions
Откуда: Уфа
Зарегистрирован: 20-12-2005
Сообщений: 2415
UA: Firefox 2.0

Re: Изменение существующей функции?

Anton
Пост №1 :tongue2:

Так как на команду cmd_function могут ссылаться несколько кнопок/пунктов меню, то желательно исправить саму команду


жЫзнь рандомна... и ничего с этим не поделаешь ;)

Отсутствует

 

№930-03-2007 19:33:39

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 2.0
Веб-сайт

Re: Изменение существующей функции?

Пост №1 tongue2

Не, не то

Как передать команду по цепочке контроллеров я не знаю, к сожалению. А eval и переопределение MsgGetMessage будет не очень правильным в расширении.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]