SLasH
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Недавно гуглил, как найти вызов функции настроек какого-либо расширения, чтобы сделать свою кнопку CustomButons с вызовом настроек требуемого расширения. Ничего не нагуглил. Выкладываю методику поиска такой функции, может кому пригодится: Цитата: Поиск функции вызова настроек ============================= 1. Входим в расширение XPI, как в ZIP-архив или распаковываем его 2. Открываем папку "locale" или "chrome\locale" и заходим в подпапку понравившейся локали (к примеру русскую: ru) 3. Ищем в папке с выбранной локалью файл, в котором будет локализация строки с текстом типа "Настройки": Пример 1 (FF: Mozilla Archive Format [maf]): искомый файл "mafCommandsOverlay.dtd" и в нём есть строка: <!ENTITY menuitem.options.label "Настройки MAF…"> 3.1.1. Ищем поиском XUL-файл, в котором применяется найденный label "menuitem.options.label": им оказывается "chrome\content\integration\mafCommandsOverlay.xul" 3.1.2. Ищем подстроку "menuitem.options.label" поиском по файлу "mafCommandsOverlay.xul" и находим описание: <menuitem id="mafMenuPreferences_appMenu" label="&menuitem.options.label;" command="mafCmdPreferences" /> здесь нас интересует обработчик "command", в нём либо сразу идёт код функции вызова настроек (как в примере 2), либо id-обработчика, в котором будет вызов функции. В этом примере нужно дальше искать подстроку "mafCmdPreferences" по файлу "mafCommandsOverlay.xul". 3.1.3. Ищем дальше по файлу "mafCommandsOverlay.xul" подстроку "mafCmdPreferences" и находим описание команды: <command id="mafCmdPreferences" oncommand="MafCommandsOverlay.preferences();" /> здесь, в атрибуте oncommand и находится вызов функции настроек: MafCommandsOverlay.preferences(); 3.1.4. Создаём новую кнопку CustomButtons и вписываем в поле "Код" текст: MafCommandsOverlay.preferences(); Пример 2 (TB: SmartTemplate4): искомый файл "smartTemplate-overlay.dtd" и в нём есть строки: <!ENTITY smartTemplate4.settings.label "SmartTemplate4"> <!ENTITY smartTemplate4.settings.tooltip "Настройки SmartTemplate4"> 3.2.1. Ищем поиском XUL-файл, в котором применяется найденный label "smartTemplate4.settings.label": им оказывается "content\messengerOverlay.xul" 3.2.2. Ищем подстроку "smartTemplate4.settings.label" поиском по файлу "messengerOverlay.xul" и находим описание: <statusbarpanel id="SmartTemplate4Messenger" label="&smartTemplate4.settings.label;" tooltiptext="&smartTemplate4.settings.tooltip;" class="statusbarpanel-iconic-text" oncommand="openDialog('chrome://SmartTemplate4/content/settings.xul', 'Preferences', 'chrome,titlebar,toolbar,dependent,centerscreen,resizable');" /> здесь нас интересут обработчик "oncommand", в нём сразу идёт код функции вызова настроек 3.2.3. Создаём новую кнопку CustomButtons и вписываем в поле "Код" текст: openDialog('chrome://SmartTemplate4/content/settings.xul', 'Preferences', 'chrome,titlebar,toolbar,dependent,centerscreen,resizable'); |
|