Страницы: 1
Добавыть в контекстное меню раширений пункт "Открыть папку расширения"(Firefox 10 +)
Автор: bunda1
Описание: Добавляет в контекстное меню расширений на странице расширений about:addons или chrome://mozapps/content/extensions/extensions.xul новый пункт "Открыть папку расширения" который дает возможность открыть папку расширения.
Использование: положите код в любую Custom Buttons кнопку, в инициализацию. Не обязательно создавать новую CB кнопку, можно использовать уже существующую.
// Добавыть в контекстное меню раширений пункт "Открыть папку расширения" .... gBrowser.addEventListener("popupshowing", function(event) { var addonPopup = gBrowser.contentWindow.document.getElementById("addonitem-popup"); var openAddonFolder = gBrowser.contentWindow.document.getElementById("openAddonFolder"); if ( addonPopup && openAddonFolder ) { var type = addonPopup.getAttribute("addontype"); openAddonFolder.hidden = (type !== 'extension'); }; if ( addonPopup && !addonPopup.hasAttribute('stopRepeat') ) { if (addonPopup.getAttribute("addontype") !== 'extension') return; addonPopup.setAttribute('stopRepeat', 'true'); var menuitem = document.createElement("menuitem"); menuitem.setAttribute("id", "openAddonFolder"); menuitem.setAttribute("label", "Открыть папку расширения"); addonPopup.appendChild(menuitem); gBrowser.contentWindow.document.getElementById("openAddonFolder").addEventListener("click", function(event) { var addons = gBrowser.contentWindow.document.getElementById('addon-list').childNodes; for( var i=0; i < addons.length; i++ ) { if ( addons[i].getAttribute('current') == 'true' ) { var value = addons[i].getAttribute('value'); var dir = Components.classes['@mozilla.org/file/directory_service;1'] .getService(Components.interfaces.nsIProperties) .get('ProfD', Components.interfaces.nsILocalFile); dir.append('extensions'); dir.append( value ); if ( dir.exists() ) dir.launch(); var file = Components.classes['@mozilla.org/file/directory_service;1'] .getService(Components.interfaces.nsIProperties) .get('ProfD', Components.interfaces.nsILocalFile); file.append('extensions'); file.append( value + '.xpi' ) if ( file.exists() ) file.launch(); return; } } }, false); }; }, false);
Отредактировано bunda1 (22-11-2012 19:24:16)
Отсутствует
Да, есть. Я ж про такие расширения и говорю - у тех у кого папки нет, но есть вот такие xpi-файлы.
Сейчас же, при попытке попасть в папку такого расширения, у меня выскакивает программа Universal Extractor для разархивации файла.
Наверное, было бы правильней для таких расширений просто открывать папку \Profile\extensions, а дальше самостоятельно находить нужный файл.
Можно еще дополнительно алертом выводить название таких файлов.
Отредактировано Inko7 (22-11-2012 19:09:29)
Отсутствует
И в чем проблема
У меня по умолчанию стоит архиватор 7-Zip и если скажем нажать "Открыть папку расширения" в контекстном меню Adblock Plus он автоматически отроет .xpi файл:
Добавлено 22-11-2012 19:25:18
Исправил мелкий баг: 25-10-2012 19:26:31
Отредактировано bunda1 (22-11-2012 19:32:23)
Отсутствует
bunda1
Разобрался. Оказывается, у меня расширение xpi не было зарегистрировано ни на одну программу.
Установил ассоциацию на winrar и теперь открывается как у тебя.
Тогда вопрос снят. Извини.
Отсутствует
bunda1 подскажи пожалуйста, что нужно изменить в коде, чтобы пункт меню "Открыть папку расширения" добавлялся не только на странице расширений about:addons, но и в меню в боковой панели (использую All-in-One Sidebar). Побывал разные варианты, что-то не получается.
Отсутствует
Да, есть. Я ж про такие расширения и говорю - у тех у кого папки нет, но есть вот такие xpi-файлы.
Сейчас же, при попытке попасть в папку такого расширения, у меня выскакивает программа Universal Extractor для разархивации файла.
Наверное, было бы правильней для таких расширений просто открывать папку \Profile\extensions, а дальше самостоятельно находить нужный файл.
Можно еще дополнительно алертом выводить название таких файлов.
Кнопка Fire Explorer делает все это и даже больше.
Отсутствует
Страницы: 1