Anton
Deim0s
Vvld
Приветствую, Уважаемые!
Не будете ль Вы столь любезны научить неуча этим пользоваться:
- как правильно копировать и сохранять скрипты со страницы,
- какое расширение присваивать скриптам
- как и в каком виде вставлять в Custom Buttons
- что не следует делать.
Имею ввиду скрипты этой темы, в частности, кнопки перевода из Google.
Буду рад оказаной помощи.
Спасибо!
Windows XP SP2, Rus,AMD 64-3500+, SkyStar2(2.6D Dr4.4.1), SatGate(Sirius2 NB), Prepaid 512, SlonAx, VPN Relcom.
Отсутствует
Добавление кнопок "Сохранить страницу" и "Сохранить ссылку" на панель закладок с помощью расширения Custom Buttons.
картинка: chrome://scrapbook/skin/capture_entire.png
код: sbBrowserOverlay.execCapture(2, false, false, event.originalTarget.id);
картинка: chrome://scrapbook/skin/capture_target.png
код: sbBrowserOverlay.execBookmark(event.originalTarget.id);
Отсутствует
В расширении toolbar buttons была кнопка которая включала и выключала загрузку картинок. Я его нашел и распотрошил но столкнулся с тем что у него в реализации используются два режима отображения кнопки ВКЛЮЧЕНО и ВЫКЛЮЧЕНО (т.е. 2 пиктограммы) можно ли это сделать в Custom Buttons и как.
Отредактировано AndreyPA (26-07-2008 03:23:16)
Отсутствует
AndreyPA
Если я правильно понял, то
if (state == 0) this. image = "file:///c:/greenicon.png"; else this. image = "file:///c:/redicon.png";
---
Кстати, просьба к пользователям с linux: помогите с разработкой кода для запуска shell-скриптов.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Ребята, те кто постоянно в этой ветке варятся, соберите, пожалуйста, то что наработано в один пост. Я имею в виду то, что пишется в поле код. Как выжимку. Буду очень признателен, как пользователь, который редко сюда заходит. Ведь реально много сделано. У вас где-то есть исправления где-то вы друг друга с полуслова поняли. Расширение прекрасное, а так таким чайникам как я будет легче.
Отсутствует
Вижу странную работу кода вида
new DOMParser().parseFromString( ... )
Правда, Custom Buttons тут ни при чем – ошибку я словил при разработке расширения. Но раз уж за основу был взят код отсюда, не будем плодить лишних сущностей топиков.
Выдернул проблемный код (будем надеяться, ссылок на то, чего уже нет, не осталось) и сделал кнопку для демонстрации (дабы легче тестировать ):
custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%7EDOMParser%20test%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20obj%20%3D%20%7B%0A%09_test%3A%20function%28e%29%20%7B%0A%09%09this.origItem%20%3D%20e.originalTarget%3B%0A%09%09this.copyOfEvent%20%3D%20e%3B%0A%09%09this.cMenu%20%3D%20document.getElementById%28%22custombuttons-contextpopup%22%29%3B%0A%0A%09%09var%20xml%20%3D%20%3Cpopup%20xmlns%3D%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%0A%09%09%09oncommand%3D%22alert%28event.target.label%29%22%3E%0A%09%09%09%09%3Cmenuitem%20label%3D%22Item%20-%200%22%20/%3E%0A%09%09%09%09%3Cmenuitem%20label%3D%22Item%20-%201%22%20/%3E%0A%09%09%09%09%3Cmenuitem%20label%3D%22Item%20-%202%22%20/%3E%0A%09%09%09%09%3Cmenuseparator%20/%3E%0A%09%09%09%09%3Cmenu%20label%3D%22Menu%22%3E%0A%09%09%09%09%09%3Cmenupopup%3E%0A%09%09%09%09%09%09%3Cmenuitem%20label%3D%22Subitem%20-%200%22%20/%3E%0A%09%09%09%09%09%09%3Cmenuitem%20label%3D%22Subitem%20-%201%22%20/%3E%0A%09%09%09%09%09%3C/menupopup%3E%0A%09%09%09%09%3C/menu%3E%0A%09%09%09%3C/popup%3E%3B%0A%09%09this.showGeneratedFromXMLPopup%28xml%29%3B%0A%09%7D%2C%0A%09showGeneratedFromXMLPopup%3A%20function%28xml%29%20%7B%0A%09%09var%20popup%20%3D%20this.getPopup%28xml%29%3B%0A%09%09this.showPopupOnCurrentItem%28popup%29%3B%0A%09%09return%20popup%3B%0A%09%7D%2C%0A%09getPopup%3A%20function%28xml%29%20%7B%0A%09%09var%20pSet%20%3D%20document.getElementById%28%22mainPopupSet%22%29%3B%0A%09%09var%20id%20%3D%20%22handyClicks-generatedPopup%22%3B%0A%09%09var%20popup%20%3D%20document.getElementById%28id%29%3B%0A%09%09if%28popup%29%0A%09%09%09pSet.removeChild%28popup%29%3B%0A%09%09popup%20%3D%20xml%0A%09%09%09%3F%20new%20DOMParser%28%29.parseFromString%28xml.toXMLString%28%29%2C%20%22application/xml%22%29.documentElement%0A%09%09%09%3A%20document.createElement%28%22popup%22%29%3B%0A%09%09if%28xml%29%20%7B%0A%09%09%09//%20Bug%3A%20labels%20of%20%3Cmenu%3E%20does%20not%20shown.%0A%09%09%7D%0A%09%09popup.id%20%3D%20id%3B%0A%09%09popup.tooltip%20%3D%20%22handyClicks-tooltip%22%3B%0A%09%09pSet.appendChild%28popup%29%3B%0A%09%09return%20popup%3B%0A%09%7D%2C%0A%09showPopupOnCurrentItem%3A%20function%28popup%29%20%7B%0A%09%09var%20node%20%3D%20this.origItem%3B%0A%09%09var%20e%20%3D%20this.copyOfEvent%3B%0A%0A%09%09if%28this.isFx%282%29%20%26%26%20this.cMenu.id%20%3D%3D%20%22contentAreaContextMenu%22%29%20%7B%20//%20workaround%20for%20spellchecker%20bug%0A%09%09%09//%20if%28this.getPref%28%22forceHideContextMenu%22%29%29%0A%09%09%09//%09window.removeEventListener%28%22contextmenu%22%2C%20this%2C%20true%29%3B%0A%0A%09%09%09var%20evt%20%3D%20document.createEvent%28%22MouseEvents%22%29%3B%20//%20thanks%20to%20Tab%20Scope%21%0A%09%09%09evt.initMouseEvent%28%0A%09%09%09%09%22click%22%2C%20true%2C%20false%2C%20node.ownerDocument.defaultView%2C%201%2C%0A%09%09%09%09e.screenX%2C%20e.screenY%2C%20e.clientX%2C%20e.clientY%2C%0A%09%09%09%09false%2C%20false%2C%20false%2C%20false%2C%0A%09%09%09%092%2C%20null%0A%09%09%09%29%3B%0A%09%09%09node.dispatchEvent%28evt%29%3B%0A%0A%09%09%09//%20this.disabledBy.cMenu%20%3D%20true%3B%0A%09%09%09//%20this.blinkNode%28%29%3B%0A%09%09%09return%3B%0A%09%09%7D%0A%09%09document.popupNode%20%3D%20node%3B%0A%09%09var%20xy%20%3D%20this.getXY%28e%29%3B%0A%09%09popup.showPopup%28this.isFx%283%29%20%3F%20node%20%3A%20e.target%2C%20xy.x%2C%20xy.y%2C%20%22popup%22%2C%20null%2C%20null%29%3B%0A%09%7D%2C%0A%09getXY%3A%20function%28e%29%20%7B%0A%09%09var%20isFx3%20%3D%20this.isFx%283%29%3B%0A%09%09return%20%7B%0A%09%09%09x%3A%20isFx3%20%3F%20e.screenX%20%3A%20e.clientX%2C%0A%09%09%09y%3A%20isFx3%20%3F%20e.screenY%20%3A%20e.clientY%0A%09%09%7D%3B%0A%09%7D%2C%0A%09get%20fxVersion%28%29%20%7B%0A%09%09if%28typeof%20this._fxVersion%20%3D%3D%20%22undefined%22%29%0A%09%09%09this._fxVersion%20%3D%20Components.classes%5B%22@mozilla.org/xre/app-info%3B1%22%5D%0A%09%09%09%09.getService%28Components.interfaces.nsIXULAppInfo%29%0A%09%09%09%09.version%3B%0A%09%09return%20this._fxVersion%3B%0A%09%7D%2C%0A%09isFx%3A%20function%28version%29%20%7B%0A%09%09return%20this.fxVersion.indexOf%28version%20+%20%22.%22%29%20%3D%3D%200%3B%0A%09%7D%0A%7D%3B%0Athis._obj%20%3D%20obj%3B%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%09if%28e.button%20%21%3D%202%29%0A%09%09this._obj._test%28e%29%3B%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%3C/custombutton%3E
Суть проблемы:
var xml = ... ; // задаем XML с вложенным меню
=>
var popup = this.getPopup(xml); // добавляем к mainPopupSet new DOMParser().parseFromString( ... ).documentElement
=>
popup.showPopup( ... ) // показываем pop-up
При этом не видно label у menu. И, если посмотреть в DOM Inspector'е, у menu нету «anonymous nodes» (которые показываются красным), задаваемых binding'ом.
Единственный способ показать label, который я нашел, – что-то вроде (увы, код я уже удалил, так что точно не помню, но все равно работал он весьма криво):
var _menu = document.createElement("menu"); _menu.setAttribute("label", menu.getAttribute("label")); // а если перенести все menu.childNodes, то работать уже не будет =/ menu.parentNode.replaceChild(_menu, menu);
Отредактировано Infocatcher (04-09-2008 17:11:15)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Infocatcher
Кажется, такая же беда может случиться и при использовании шаблонов. Когда-то хотел сделать mrn с использованием шаблонов, но не справился с вложенными меню.
Я пас, в общем, кому-то даже жаловался уже, что за кнопку с вложенными меню на xml браться не буду.
Идей нет.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton
Идей нет.
Видимо, придется делать менее «прозрачные» способы задания меню.
custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EPop-up%20menu%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20obj%20%3D%20%7B%0A%09_test%3A%20function%28e%29%20%7B%0A%09%09this.origItem%20%3D%20e.originalTarget%3B%0A%09%09this.copyOfEvent%20%3D%20e%3B%0A%09%09this.cMenu%20%3D%20document.getElementById%28%22custombuttons-contextpopup%22%29%3B%0A%0A%09%09var%20items%20%3D%20%5B%0A%09%09%09%7B%20label%3A%20%22Label%20-%200%22%20%7D%2C%0A%09%09%09%7B%7D%2C%0A%09%09%09%7B%20label%3A%20%22Label%20-%201%22%20%7D%2C%0A%09%09%09%7B%20label%3A%20%22Label%20-%202%22%20%7D%2C%0A%09%09%09%7B%20label%3A%20%22Label%20-%203%22%20%7D%2C%0A%09%09%09%5B%0A%09%09%09%09%7B%20label%3A%20%22Menu%20-%204%22%20%7D%2C%0A%09%09%09%09%5B%0A%09%09%09%09%09%7B%20label%3A%20%22Label%20-%204%20-%200%22%20%7D%2C%0A%09%09%09%09%09%5B%0A%09%09%09%09%09%09%7B%20label%3A%20%22Menu%20-%204%20-%201%22%20%7D%2C%0A%09%09%09%09%09%09%5B%0A%09%09%09%09%09%09%09%7B%20label%3A%20%22Label%20-%204%20-%201%20-%201%22%20%7D%0A%09%09%09%09%09%09%5D%0A%09%09%09%09%09%5D%2C%0A%09%09%09%09%09%7B%20label%3A%20%22Label%20-%204%20-%201%22%20%7D%2C%0A%09%09%09%09%09%7B%20label%3A%20%22Label%20-%204%20-%202%22%20%7D%0A%09%09%09%09%5D%0A%09%09%09%5D%0A%09%09%5D%3B%0A%09%09var%20popup%20%3D%20this.showGeneratedPopup%28items%29%3B%0A%09%09popup.setAttribute%28%22oncommand%22%2C%20%22alert%28event.target.label%29%3B%22%29%3B%0A%09%7D%2C%0A%09showGeneratedPopup%3A%20function%28items%29%20%7B%0A%09%09var%20popup%20%3D%20this.createPopup%28items%29%3B%0A%09%09this.showPopupOnCurrentItem%28popup%29%3B%0A%09%09return%20popup%3B%0A%09%7D%2C%0A%09createPopup%3A%20function%28items%29%20%7B%0A%09%09var%20popup%20%3D%20this.popup%3B%0A%09%09this.appendChilds%28popup%2C%20items%29%3B%0A%09%09return%20popup%3B%0A%09%7D%2C%0A%09get%20popup%28%29%20%7B%0A%09%09var%20pSet%20%3D%20document.getElementById%28%22mainPopupSet%22%29%3B%0A%09%09var%20id%20%3D%20%22handyClicks-generatedPopup%22%3B%0A%09%09var%20popup%20%3D%20document.getElementById%28id%29%3B%0A%09%09if%28popup%29%0A%09%09%09pSet.removeChild%28popup%29%3B%0A%09%09popup%20%3D%20document.createElement%28%22popup%22%29%3B%0A%09%09popup.id%20%3D%20id%3B%0A%09%09popup.tooltip%20%3D%20%22handyClicks-tooltip%22%3B%0A%09%09pSet.appendChild%28popup%29%3B%0A%09%09return%20popup%3B%0A%09%7D%2C%0A%09appendChilds%3A%20function%28parent%2C%20childs%29%20%7B%0A%09%09for%28var%20i%20%3D%200%3B%20i%20%3C%20childs.length%3B%20i++%29%0A%09%09%09this%5B%22appendMenu%22%20+%20%28childs%5Bi%5D%20instanceof%20Array%20%3F%20%22%22%20%3A%20%22item%22%29%5D%28parent%2C%20childs%5Bi%5D%29%3B%0A%09%7D%2C%0A%09appendMenu%3A%20function%28parent%2C%20itemsArr%29%20%7B%0A%09%09var%20menu%20%3D%20document.createElement%28%22menu%22%29%3B%0A%09%09this.setAttributes%28menu%2C%20itemsArr%5B0%5D%29%3B%0A%09%09var%20mPopup%20%3D%20document.createElement%28%22menupopup%22%29%3B%0A%09%09this.appendChilds%28mPopup%2C%20itemsArr%5B1%5D%29%3B%0A%09%09menu.appendChild%28mPopup%29%3B%0A%09%09parent.appendChild%28menu%29%3B%0A%09%7D%2C%0A%09appendMenuitem%3A%20function%28parent%2C%20attrs%29%20%7B%0A%09%09var%20mi%20%3D%20document.createElement%28attrs.label%20%3F%20%22menuitem%22%20%3A%20%22menuseparator%22%29%3B%0A%09%09this.setAttributes%28mi%2C%20attrs%29%3B%0A%09%09parent.appendChild%28mi%29%3B%0A%09%7D%2C%0A%09setAttributes%3A%20function%28item%2C%20attrs%29%20%7B%0A%09%09for%28var%20p%20in%20attrs%29%20%7B%0A%09%09%09if%28typeof%20attrs%5Bp%5D%20%21%3D%20%22string%22%20%7C%7C%20p.indexOf%28%22__%22%29%20%3D%3D%200%29%0A%09%09%09%09item%5Bp%5D%20%3D%20attrs%5Bp%5D%3B%20//%20not%20works%20for%20%22oncommand%22%0A%09%09%09else%0A%09%09%09%09item.setAttribute%28p%2C%20attrs%5Bp%5D%29%3B%0A%09%09%7D%0A%09%7D%2C%0A%09showPopupOnCurrentItem%3A%20function%28popup%29%20%7B%0A%09%09var%20node%20%3D%20this.origItem%3B%0A%09%09var%20e%20%3D%20this.copyOfEvent%3B%0A%0A%09%09if%28this.isFx%282%29%20%26%26%20this.cMenu.id%20%3D%3D%20%22contentAreaContextMenu%22%29%20%7B%20//%20workaround%20for%20spellchecker%20bug%0A%09%09%09//%20if%28this.getPref%28%22forceHideContextMenu%22%29%29%0A%09%09%09//%09window.removeEventListener%28%22contextmenu%22%2C%20this%2C%20true%29%3B%0A%0A%09%09%09var%20evt%20%3D%20document.createEvent%28%22MouseEvents%22%29%3B%20//%20thanks%20to%20Tab%20Scope%21%0A%09%09%09evt.initMouseEvent%28%0A%09%09%09%09%22click%22%2C%20true%2C%20false%2C%20node.ownerDocument.defaultView%2C%201%2C%0A%09%09%09%09e.screenX%2C%20e.screenY%2C%20e.clientX%2C%20e.clientY%2C%0A%09%09%09%09false%2C%20false%2C%20false%2C%20false%2C%0A%09%09%09%092%2C%20null%0A%09%09%09%29%3B%0A%09%09%09node.dispatchEvent%28evt%29%3B%0A%0A%09%09%09//%20this.disabledBy.cMenu%20%3D%20true%3B%0A%09%09%09//%20this.blinkNode%28%29%3B%0A%09%09%09return%3B%0A%09%09%7D%0A%09%09document.popupNode%20%3D%20node%3B%0A%09%09var%20xy%20%3D%20this.getXY%28e%29%3B%0A%09%09popup.showPopup%28this.isFx%283%29%20%3F%20node%20%3A%20e.target%2C%20xy.x%2C%20xy.y%2C%20%22popup%22%2C%20null%2C%20null%29%3B%0A%09%7D%2C%0A%09getXY%3A%20function%28e%29%20%7B%0A%09%09var%20isFx3%20%3D%20this.isFx%283%29%3B%0A%09%09return%20%7B%0A%09%09%09x%3A%20isFx3%20%3F%20e.screenX%20%3A%20e.clientX%2C%0A%09%09%09y%3A%20isFx3%20%3F%20e.screenY%20%3A%20e.clientY%0A%09%09%7D%3B%0A%09%7D%2C%0A%09get%20fxVersion%28%29%20%7B%0A%09%09if%28typeof%20this._fxVersion%20%3D%3D%20%22undefined%22%29%0A%09%09%09this._fxVersion%20%3D%20Components.classes%5B%22@mozilla.org/xre/app-info%3B1%22%5D%0A%09%09%09%09.getService%28Components.interfaces.nsIXULAppInfo%29%0A%09%09%09%09.version%3B%0A%09%09return%20this._fxVersion%3B%0A%09%7D%2C%0A%09isFx%3A%20function%28version%29%20%7B%0A%09%09return%20this.fxVersion.indexOf%28version%20+%20%22.%22%29%20%3D%3D%200%3B%0A%09%7D%0A%7D%3B%0Athis._obj%20%3D%20obj%3B%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%09if%28e.button%20%21%3D%202%29%0A%09%09this._obj._test%28e%29%3B%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%3C/custombutton%3E
Радует только, что добавлять к уже имевшемуся коду пришлось только поддержку вложенных меню (по сути было то же самое, но без .appendMenu( ... )).
P.S.
Когда-то хотел сделать mrn
Сделать menu? Или очепятка, или я чего-то не догоняю.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Черт,возникла неприятная ситуация.Обновился до версии 0,0,3,3.Половина кнопок слетела почему то.При этом не могу откатиться назад.Не сохранилась версия 0,0,3,2.Или подскажите,в чем проблема,или дайте ссылку,на 0,0,3,2.
Отсутствует
vv07
Половина кнопок слетела почему то.
Что значит "слетела" ?
дайте ссылку,на 0,0,3,2.
https://addons.mozilla.org/ru/firefox/addon/2707 - на странице есть ссылка "Отобразить все версии".
или (без автообновления) - http://custombuttons.mozdev.org/installation.html
Не думаю, что корень проблемы в расширении, но на всякий случай, если не трудно - отправьте до установки 0.0.3.2 файлы (buttonsoverlay.xul и buttonsoverlay.xul.bak) из подкаталога custombuttons профиля на адрес custombuttonsextension@gmail.com.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton
Извините меня пожалуйста за поспешность.Сильно расстроился блин.Разобрался в чем проблема.Дело в том,что папку с иконками для расширения,расположил в корневой папке.При установке обновления,папка полностью обновилась и иконки были утрачены.именно поэтому,кнопки перестали отображаться.Может стоит,как то исключить такую возможность,в последующем.Просто удобнее держать иконки,именно в директории расширения.
Отсутствует
Добавление кнопок "Сохранить страницу" и "Сохранить ссылку" на панель закладок с помощью расширения Custom Buttons.
картинка: chrome://scrapbook/skin/capture_entire.png
код: sbBrowserOverlay.execCapture(2, false, false, event.originalTarget.id);картинка: chrome://scrapbook/skin/capture_target.png
код: sbBrowserOverlay.execBookmark(event.originalTarget.id);
Вот эта штука сохраняет старницу далеко в "C:\Documents and Settings\Администратор\Application Data\Mozilla\Firefox\Profiles\ksc247o6.default\ScrapBook\data\20080912165717\"
Да и каждый раз в разную директорию...
А как сделать так что бы всегда в одну директорию? Да и которую я хочу явно задать... скажем в коде...
Отсутствует
Если я правильно понял,речь о расширении ScrapBook,так в нем можно задать директорию,в настройках.Скопируйте или перенесите папку ScrapBook,в любое удобное для вас место.В настройках укажите эту папку.Все,по умолчанию будет сохраняться туда.
Отредактировано vv07 (12-09-2008 18:35:26)
Отсутствует
Если я правильно понял,речь о расширении ScrapBook,так в нем можно задать директорию,в настройках.Скопируйте или перенесите папку ScrapBook,в любое удобное для вас место.В настройках укажите эту папку.Все,по умолчанию будет сохраняться туда.
Спасибо!
Нашел настройки. Почти все хорошо. Корневую папку указать можно. D:\TEMP\MyData\
Но при этом сохранение идет в дальше каждый раз в папку с другим именем типа data\20080913115945\
Это уже конечно решаемы вопрос.
Но идеально было бы что бы сохраняло всегда в одну папку.
Отсутствует
vv07
папку с иконками для расширения,расположил в корневой папке
В корневой папке чего ? В каталог, где находится установленное расширение ?
Просто удобнее держать иконки,именно в директории расширения.
А в перекодированном в base64 виде или в подкаталоге custombuttons профиля не пойдёт ?
Mashinist
Если достаточно сохранения в каталог загрузок Firefox, можно воспользоваться кнопкой с таким кодом:
Если недостаточно, можно попробовать такой код:
var saveDirectory = "c:\\savedhtml"; var doc = window. content. document; var url = doc. location. href; var charset = doc. characterSet; var contentType = doc. contentType; var fileInfo = new FileInfo (""); initFileInfo (fileInfo, url, charset, doc, contentType, null); var file = Components. classes ["@mozilla.org/file/local;1"]. createInstance (Components. interfaces. nsILocalFile); file. initWithPath (saveDirectory); var dir = file. clone (); dir. append (fileInfo. fileName); file. append (fileInfo. fileName + "." + fileInfo. fileExt); var fileURL = makeFileURI (file); var persist = makeWebBrowserPersist (); var persistArgs = { source : doc, contentType : contentType, target : fileURL, postData : getPostData (), bypassCache : false // aShouldBypassCache }; var encodingFlags = Components. interfaces. nsIWebBrowserPersist. ENCODE_FLAGS_ENCODE_BASIC_ENTITIES; var tr = Components. classes ["@mozilla.org/transfer;1"]. createInstance (Components. interfaces. nsITransfer); tr.init (fileInfo. uri, persistArgs. target, "", null, null, null, persist); //persist.persistFlags = Components. interfaces. nsIWebBrowserPersist. PERSIST_FLAGS_BYPASS_CACHE; persist.persistFlags = Components. interfaces. nsIWebBrowserPersist. PERSIST_FLAGS_FROM_CACHE; persist. progressListener = tr; persist. saveDocument (persistArgs.source, persistArgs.target, dir, persistArgs.contentType, encodingFlags, 80);
в первой строке которого задаём нужный каталог.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Спасибо!
Второй вариант подошел.
Хотя в принципе подошело дополнение ScrepBook с одной командой на кнопке sbBrowserOverlay.execCapture(2, false, false, event.originalTarget.id);
Отсутствует
Да речь,о корневой папке расширения custombuttons@xsms.org.Держу иконки там,в подпапке Icon.Насчет
А в перекодированном в base64 виде
незнаю,а вот
или в подкаталоге custombuttons профиля не пойдёт ?
думаю нормально.Главное,что бы,при обновлениях,директория,в которой будут находиться иконки,не изменялась.Пусть основной каталог меняеться,а подкаталог нет.Тогда при обновах,иконки будут сохраняться и не надо морочиться,держать их хрен знает где.Я пользуюсь еще и портаблелисом,переношу конфигу из системной.Не надо ничего менять.Пути все прописываються по умолчанию.Никаких проблем.Раньше держал иконки в отдельной папке,на другом диске.Приходилось,каждый раз,по новому кнопки править.Поэтому и прошу о правке.
Отсутствует
Да речь,о корневой папке расширения custombuttons@xsms.org.Держу иконки там,в подпапке Icon.Насчет
А в перекодированном в base64 виде
незнаю
В диалоговом окне редактирования кнопки есть кнопка "=> base64", которая преобразует файл изображения в строку символов, которая хранится вместе с кодом кнопки.
или в подкаталоге custombuttons профиля не пойдёт ?
думаю нормально.Главное,что бы,при обновлениях,директория,в которой будут находиться иконки,не изменялась.Пусть основной каталог меняеться,а подкаталог нет.Тогда при обновах,иконки будут сохраняться и не надо морочиться,держать их хрен знает где.Я пользуюсь еще и портаблелисом,переношу конфигу из системной.Не надо ничего менять.Пути все прописываються по умолчанию.Никаких проблем.Раньше держал иконки в отдельной папке,на другом диске.Приходилось,каждый раз,по новому кнопки править.Поэтому и прошу о правке.
В custombuttons уже есть один механизм, позволяющий исключить зависимость от места расположения изображений кнопок - это кодирование в base64. Стоит ли создавать второй ? Я подумаю, но ничего не обещаю.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Помогите если не сложно:
- реализовать с помощью кнопки: размещение курсора в адресной строке, по аналогу F6 (дело в том что F6 криво работает для меня, не всегда размещает курсор в строку при нажатии);
- загрузка соответствующих внешних приложений при старте Firefox и так же их выгрузка при закрытии Firefox .
Вообще можна ли создать скрипт, который выполянется при закрытии Firefox если не с помощью кнопки , то может с помощью чего либо другого ?
Отсутствует
vurdalak
Вообще можна ли создать скрипт, который выполянется при закрытии Firefox если не с помощью кнопки , то может с помощью чего либо другого ?
По-хорошему, вроде, надо делать расширение с XPCOM-компонентой...
Тем не менее, можно попробовать сделать вот так:
custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EStartup%20/%20Shutdown%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bfunction%20getWindowsCount%28%29%20%7B%0A%09var%20wins%20%3D%20Components.classes%5B%22@mozilla.org/appshell/window-mediator%3B1%22%5D%0A%09%09.getService%28Components.interfaces.nsIWindowMediator%29%0A%09%09.getEnumerator%28%22navigator%3Abrowser%22%29%3B%0A%09var%20count%20%3D%200%3B%0A%09while%28wins.hasMoreElements%28%29%29%20%7B%0A%09%09wins.getNext%28%29%3B%0A%09%09count++%3B%0A%09%7D%0A%09return%20count%3B%0A%7D%0Afunction%20_log%28%29%20%7B%0A%09alert%28%22Startup%20/%20Shutdown%20button%20-%3E%20%22%20+%20arguments.callee.caller.name%29%3B%0A%7D%0Afunction%20startup%28%29%20%7B%0A%09_log%28%29%3B%0A%7D%0Afunction%20shutdown%28%29%20%7B%0A%09_log%28%29%3B%0A%7D%0Afunction%20eventHandler%28e%29%20%7B%0A%09window.removeEventListener%28e.type%2C%20arguments.callee%2C%20false%29%3B%0A%09if%28e.type%20%3D%3D%20%22load%22%20%26%26%20getWindowsCount%28%29%20%3D%3D%201%29%0A%09%09startup%28%29%3B%0A%09else%20if%28e.type%20%3D%3D%20%22unload%22%20%26%26%20getWindowsCount%28%29%20%3D%3D%200%29%0A%09%09shutdown%28%29%3B%0A%7D%0Aif%28%21window%5B%22__listeners__%22%20+%20this.id%5D%29%20%7B%0A%09window%5B%22__listeners__%22%20+%20this.id%5D%20%3D%20true%3B%0A%09window.addEventListener%28%22load%22%2C%20eventHandler%2C%20false%29%3B%0A%09window.addEventListener%28%22unload%22%2C%20eventHandler%2C%20false%29%3B%0A%7D%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%3C/custombutton%3E
Внутри функций startup и shutdown
пишем то, что должно выполняться при запуске и закрытии соответственно. Учитывается только «главное» окно. Например, если оставить загрузки и закрыть все другие окна, скрипт решит, что произошел выход.
размещение курсора в адресной строке, по аналогу F6
custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EFocus%20URL%20Bar%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20uBar%20%3D%20document.getElementById%28%22urlbar%22%29%3B%0AuBar.focus%28%29%3B%0AuBar.select%28%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%3C/custombutton%3E
Добавлено 16-09-2008 23:49:58
P.S. Идея. При добавлении кнопки через custombutton-протокол сделать возможность посмотреть код (по аналогии с Greasemonkey). Из тех же соображений безопасности (или есть способ добраться до кода кнопки без запуска инициализации?).
Отредактировано Infocatcher (17-09-2008 01:26:59)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Спасибо за быстрый ответ.
Все вроде бы неплохо, в функции "startup" я прописал код запуска приложения, все нормально запускается, но выгружать приложения в функции shutdown я собираюсь через "taskkill.exe". И дело в том, что если такой код работает:
var file = Components. classes ["@mozilla.org/file/local;1"]. createInstance (Components. interfaces. nsILocalFile); var process = Components. classes ["@mozilla.org/process/util;1"]. getService (Components. interfaces. nsIProcess); file. initWithPath ("C:\\windows\\system32\\calc.exe"); process. init (file); process. run (false,[''],1);
То уже:
работать отказывается
Не знаю в чем может быть дело ?
P.S. Хм... Или может не через taskkill.exe можна ?
Отредактировано vurdalak (17-09-2008 00:36:41)
Отсутствует
vurdalak
P.S. Хм... Или может не через taskkill.exe можна ?
Гм, у меня вот так заработало:
function startProcess(path, args) { args = args || []; var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(path); if(!file.exists()) { alert(path + "\nnot found!"); return; } var process = Components.classes["@mozilla.org/process/util;1"] .getService(Components.interfaces.nsIProcess); process.init(file); process.run(false, args, args.length); } function killProcess(name) { startProcess("c:\\WINDOWS\\system32\\taskkill.exe", ["/F", "/IM" , name]); } killProcess("notepad.exe"); killProcess("Opera.exe");
Добавлено 17-09-2008 01:06:57
P.S. А cmd.exe в скрытом виде стартует...
P.P.S. Или функция startProcess +
function killProcesses() { var args = ["/F"]; for(var i = 0; i < arguments.length; i++) args.push("/IM"), args.push(arguments[i]); startProcess("c:\\WINDOWS\\system32\\taskkill.exe", args); } killProcesses("notepad.exe", "Opera.exe");
Добавлено 17-09-2008 01:28:56
Добавил в кнопку «Startup / Shutdown» проверку наличия обработчиков (иначе каждый раз после редактирования кнопки вызывалась инициализация и плодила обработчики).
Код кнопки обновил.
Отредактировано Infocatcher (17-09-2008 01:17:02)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует