>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Изменение существующей функции? http://forum.mozilla-russia.org/viewtopic.php?id=16185 |
Merlyel > 24-03-2007 04:07:53 |
Есть кнопка (ну и соотв. пункт меню), у которой есть параметр Так как на команду cmd_function могут ссылаться несколько кнопок/пунктов меню, то желательно исправить саму команду, а не перебирать судорожно кнопки Можно ли это как-то сделать, т.е. чтобы вместо cmd_function выполнялось, для примера, что-то типа: |
Anton > 24-03-2007 19:01:48 |
Можно. Выделить код Код:window. eval ( goDoCommand. toString (). replace (/\{/, "{if(command=='cmd_function')alert('alert');") ) |
Merlyel > 25-03-2007 01:21:32 |
Anton |
Merlyel > 27-03-2007 23:24:56 |
Anton Выделить код Код:window.eval ( goDoCommand.toString().replace(/\{/, "{ if (command =='cmd_function') alert('alert');") ) А как же функция cmd_function? Она в таком случае все равно сработает? Добавлено Втр 27 Мар 2007 23:51:09 : Вся картинка: в tb есть кнопочка "получить почту", на ней команда висит goDoCommand('cmd_getNewMessages'). Надо добавить перед/после goDoCommand(...) еще команду |
Anton > 28-03-2007 17:58:22 |
Сработает.
Куда угодно, лишь бы eval выполнился и подменил начало функции goDoCommand. Какой конкректно *.xul должен быть перекрыт оверлеем с нужным <script в tb я не знаю (вернее, лень копать). Да, и ещё нужна проверка, чтобы eval отработал только один раз.
С этого и надо было начинать. Перекрой оверлеем нужную кнопку и сделай ей атрибут |
Merlyel > 28-03-2007 20:49:27 |
Anton
Я же говорю - оверлеем можно было бы кнопку перекрыть, но ведь та же команда может висеть и на каком-нибудь пункте меню Или не так? |
Anton > 28-03-2007 22:03:15 |
Где, когда, кому ? |
Merlyel > 28-03-2007 22:13:40 |
Anton
|
Anton > 30-03-2007 19:33:39 |
Не, не то Как передать команду по цепочке контроллеров я не знаю, к сожалению. А eval и переопределение MsgGetMessage будет не очень правильным в расширении. |