Elena > 04-07-2006 19:58:15 |
Здравствуйте. Помогите пожалуйста решить проблему: Расширение в грузит в нескольких параллельных табах страницы и обрабатывает их. В процессе загрузки страниц иногда всплывают диалоговые окна с запросами паролей и т.п. Как можно из расшения получить доступ к такому окну и придудительно закрыть его (не важно, какой кнопкой и не важно будет ли туда введено что-нибудь)? Можно ли как-нибудь узнать что выплыло окно и отреагировать на это? Спасибо. |
Anton > 04-07-2006 20:09:37 |
Есть, по меньшей мере, два варианта: 1. http://forum.mozilla.ru/viewtopic.php?id=10479 2. http://xpoint.ru/forums/programming/XUL … 6827.xhtml |
Elena > 05-07-2006 10:50:52 |
Эту тему видела, но не смогла понять как получить доступ к окну сообщения, чтобы перехватить аллерт. и куда надо вставить приведенный там код. Не расскажите подробнее? Дело в том, что я пока не очень хорошо разбираюсь в javаScript и XUL, а расширение написать надо...  За ссылку спасибо. Сейчас буду пробовать этот способ. |
Merlyel > 05-07-2006 11:37:04 |
Anton Кстати, диалоговые окна с запросами паролей - это, кажется, не alert'ы, prompt'ы и confirm'ы. Поэтому так просто их перехватить не получится. Например, в tb чтобы не появлялось окошко об ошибке связи ausdilecce так и не удалось сделать - он только нажимает кнопку OK в таких окошках. Или мы все-таки тупим и как-то можно? Если да - плз пример  |
Elena > 05-07-2006 13:01:40 |
Вроде получилось перехватывать загрузку диалоговых окон с запросами паролей, сообщей о сертификатах и т.п. Для этого пришлось повесить оверлеи на chrome://global/content/commonDialog.xul chrome://mozapps/content/downloads/unknownContentType.xul chrome://pippki/content/serverCertExpired.xul. Самое сложное было найти какой xul файл за какой диалог отвечает. Может где нибудь есть список всех элементов интерфейса mozilla с указанием в каком xul файле они описаны (а то пришлось довольно долго искать в исходниках)? |
Merlyel > 05-07-2006 13:11:17 |
Elena А ты расширение DOM Inspector не пробовала? Делаешь, чтобы нужное тебе окошко появилось и через DOM Inspector смотришь - там указаны их xul-исходники. |
Elena > 05-07-2006 14:01:32 |
Lynxx Спасибо! он у меня даже стоит, но что-то из головы совсем вылетело.  Только вот некоторые из диалогов (видимо, модальные) блокируют доступ к меню firefox так что DOMInspector не могу вызвать... |
Merlyel > 05-07-2006 15:15:51 |
Elena Запусти DOM Inspector в самом начале работы fx. И не закрывай его. Он будет доступен отдельным окном и не будет блокироваться алертами  |
Elena > 05-07-2006 16:37:15 |
Lynxx пишетElena Запусти DOM Inspector в самом начале работы fx. И не закрывай его. Он будет доступен отдельным окном и не будет блокироваться алертами 
Поняла. Спасибо.  |
Elena > 05-07-2006 18:11:34 |
Еще вопрос: а все таки нет списка всех возможных диалоговых окон которые могут всплыть в процессе работы? а то получается их находить только эксперементальным путем (а это мееедленно и не факт что удасться отловить все возможные), а хотелось бы для всех сразу прописать оверлеи для блокировки... |
Anton > 06-07-2006 00:59:48 |
Lynxx пишетAnton Кстати, диалоговые окна с запросами паролей - это, кажется, не alert'ы, prompt'ы и confirm'ы. Поэтому так просто их перехватить не получится. Например, в tb чтобы не появлялось окошко об ошибке связи ausdilecce так и не удалось сделать - он только нажимает кнопку OK в таких окошках. Или мы все-таки тупим и как-то можно? Если да - плз пример 
А из первого поста неочевидно, какие именно диалоговый окна подразумеваются - может, javascript просит некоторые пароли через window.prompt. Ну, раз уж речь о nsIPromptService, тогда только оверлеи. Или собственный компонент nsIPromptService - только, имхо, это будет сложнее, чем с оверлеями - компоненту придётся самостоятельно открывать нужные диалоги при необходимости (я (пока?) не знаю как вызвать метод из перекрытой компоненты). |