Пожалуйста люди дайте-
1)простую кнопку которая бы добавляла открытую страницу в папку закладок (по лкм, папка указана коде кнопки),
2)простую кнопку которая бы удаляла все закладки из папки закладок(по лкм, папка указана коде кнопки)
Отсутствует
okkamas_knife пишет:
кстати заметил то что иногда на новой версии кнопки не отрабатывает скрытие основного кнопочного меню по пкм
Тогда оно и на старой версии могло происходить – эту часть я не трогал.
Подправил. Должно помочь.
Отсутствует
okkamas_knife
у меня меняется при наведении, как и должно. Но там картинки оч похожие, это я их выдирал из Undo Closed Tabs button дополнения.
Если всё же совсем не меняются - значит у тя такой же как и у меня глюк с каритнками для некоторых КБ кнопок, я вот думаю себе профиль новый сделать, уже проверил - на нём всё чётко.
Отсутствует
Infocatcher пишет:
P.S. Вообще, хорошо бы или другой метод (onRebuild, например) или аргументом в onDestroy передавать.
А почему просто не перекрыть стиль новым ?
Добавлено 05-06-2010 13:28:00
dragon2010 пишет:
Вопрос такого плана. А почему Custom Buttons не хочет работать в CometBird? Остальные (за все не скажу), которые скачал работают.
Версия CometBird 3.6.3
Потому что Custom Buttons использует имя приложения для создания оверлеев и инициализации при загрузке, а в CometBird компонент nsIXULAppInfo возвращает "CometBird", а не "Firefox".
Я попробую это как-нибудь исправить, и, возможно, расширение будет работать в CometBird.
Добавлено 05-06-2010 13:33:23
rupor пишет:
Подскажите примерный код кнопки для выполнения таких действий:
анализ исходника на ключевую фразу вида "Найди здесь %s мышь", где %s - переменная цифра, а затем ввод слова из заранее имеющегося массива за номером %s, то есть my_array[%s] в поле единственной формы и submit.
Нужен исходник для тестирования.
Отсутствует
bunda1 пишет:
Пожалуйста люди дайте-
1)простую кнопку которая бы добавляла открытую страницу в папку закладок (по лкм, папка указана коде кнопки),
2)простую кнопку которая бы удаляла все закладки из папки закладок(по лкм, папка указана коде кнопки)
var folderName = "myFolder"; var bmsvc = Components. classes ["@mozilla.org/browser/nav-bookmarks-service;1"]. getService (Components. interfaces. nsINavBookmarksService); var menuFolder = bmsvc. bookmarksMenuFolder; var f = bmsvc. getChildFolder (menuFolder, folderName); if (f == 0) { bmsvc. createFolder (menuFolder, folderName, bmsvc. DEFAULT_INDEX); f = bmsvc. getChildFolder (menuFolder, folderName); } PlacesCommandHook. bookmarkCurrentPage (false, f);
var folderName = "myFolder"; var bmsvc = Components. classes ["@mozilla.org/browser/nav-bookmarks-service;1"]. getService (Components. interfaces. nsINavBookmarksService); var menuFolder = bmsvc. bookmarksMenuFolder; var f = bmsvc. getChildFolder (menuFolder, folderName); if (f != 0) bmsvc. removeFolderChildren (f);
Отсутствует
Anton
1)кнопка "Добавление закладки" не всегда добавляет в папку закладок закладки , кнопка некоторие открытие страници добавляет, некоторие нет (пример -главную страницу http://www.softodrom.ru/) не хочет добавлять, что делать?
2)как изменить код чтобы кнопки работали если папка закладок находится на панеле закладок?
Отредактировано bunda1 (05-06-2010 21:10:48)
Отсутствует
Anton пишет:
А почему просто не перекрыть стиль новым ?
Убирание старого стиля нужно только для удобства редактирования. Если старый не убран, нужно все время помнить, что там было сделано раньше, чтобы вовремя понять, что наблюдаемые глюки – наследство от прошлых экспериментов.
А старый стиль, чтобы можно было его убрать, должен где-то запоминаться – или исходная строка, или URI.
Отсутствует
bunda1
1)кнопка "Добавление закладки" не всегда добавляет в папку закладок закладки , кнопка некоторие открытие страници добавляет, некоторие нет (пример -главную страницу http://www.softodrom.ru/) не хочет добавлять, что делать?
У меня главную страницу http://www.softodrom.ru/ - добавляет, что я делаю не так ?
2)как изменить код чтобы кнопки работали если папка закладок находится на панеле закладок?
Заменить
на
Отсутствует
bunda1 пишет:
Разобрался сам не добавляется те страницы которые уже есть в закладках.
Да, функция Firefox PlacesCommandHook. bookmarkCurrentPage не делает дубликаты закладок.
Отсутствует
rupor
Код примерно такой:
var searchTemplate = "Найди здесь %s мышь"; var wordArray = ["слово1", "слово2", "слово3", "слово3", "слово4", "слово5", "слово6", "слово7", "слово8", "слово9"]; searchTemplate = searchTemplate. replace (/%s/, "(\\d+)"); var doc = getBrowser (). contentDocument; var elts = doc. evaluate ( "//text()", doc, null, XPathResult. ORDERED_NODE_SNAPSHOT_TYPE, null ); var elt, data, m, res; for (var i = 0; i < elts. snapshotLength; i++) { elt = elts. snapshotItem (i); var data = elt. data; var m = data. match (new RegExp (searchTemplate)); if (m) { res = wordArray [parseInt (m [1])]; break; } } if (res) { var form = doc. forms [0]; var inpf = doc. evaluate ( "//input[@type='text']", form, null, XPathResult. ORDERED_NODE_SNAPSHOT_TYPE, null ); inpf. snapshotItem (0). value = res; form. submit (); }
Отсутствует
Ну вот, в кнопке для отмены закрытия вкладок тоже использовалась функция navigator.preference().
Тестовая версия, код для секции «инициализация»: undoCloseTabsList-0.2.0b1.js.
Основная плюшка – шаблон, задающий порядок пунктов в меню:
this.settings = { menuTemplate: [ "closedWindows", "separator", "restoreClosedWindows", "clearClosedWindows", "separator", "closedTabs", "separator", "restoreClosedTabs", "clearClosedTabs", "separator", "clearAll" ], openMenuOnMouseover: false };
Отсутствует
okkamas_knife пишет:
1 сделал чтоб при выбранной картинке иконки менялись(тупо this.image="" в начале добавил)) чтоб при сохранении картинка была
Можно и добавить... А при распространении через custombutton-ссылку эта проблема должна отпадать. Мне же удобнее в виде кода хранить.
okkamas_knife пишет:
2 заменил английские сообщения на русские (оригинальные в той же строчке после комментариев)
Accesskeys обычно тоже переводят (правда, это очень занудно, чтобы ничего не пересекалось, и была хоть какая-то логика). Сделал поддержку мультиязычности. Пусть будет.
undoCloseTabsList-0.2.0b2.js (все еще тестовая)
Отсутствует
Anton
глючит кнопка "Добавление закладки"
дабавил в userChrome такой код #star-button{display: none !important;}
теперь если нажать кнопу - открытая страница добавляется в папку закладок но выскакивает окошко с запросом на
"Редактирование этой закладки
Удалить 1 закладку"
как это исправить?
Отредактировано bunda1 (11-06-2010 22:00:17)
Отсутствует
Accesskeys – это такие подчеркнутые буквы в менюшках и прочих местах. Для менюшек работают только при открытой менюшке и только для текущего «уровня». Но если нужного символа в названии нет, то будет что-то вроде «Название (F)», что как-то не смотрится.
Например, Alt+И, Д откроет окно дополнений.
А вот неработоспособность этого дела при использовании не ASCII-символов – баг Firefox (точнее, наверное, движка).
И то, что они не скрываются в соответствии с системными настройками, – тоже баг. А по умолчанию в Windows все accesskeys скрываются до нажатия Alt.
Ctrl+Shift+N и Ctrl+Shift+T – стандартные клавиши, я их просто показываю.
Можно добавить в секцию «код»
var mp = this._mp; if("openPopup" in mp) mp.openPopup(this, "after_start"); else mp.showPopup(this, -1, -1, "popup", "bottomleft", "topleft");
и назначить встроенными средствами какой-нибудь Ctrl+Shift+Z.
Отсутствует
okkamas_knife пишет:
а стандартную контрол+шифт+Т сменить както можно?
Или Keyconfig (+ куча страниц на буржуйском форуме), или примерно так (в инициализацию):
var keyElt = document.getElementById("key_undoCloseTab"); keyElt.setAttribute("key", "D"); keyElt.setAttribute("modifiers", "control,shift");
https://developer.mozilla.org/en/XUL_Tu … ey_element
Отредактировано Infocatcher (12-06-2010 00:24:55)
Отсутствует
Взято с сайта cb² Custom Buttons² Context Menu Demo
var Cb = custombuttons; // Two functions for testing, this.one() and this.two() this.one = function() { var Msg = createMsg(this.label); Msg.aMsg("Function 1"); } this.two = function() { custombuttons.alertSlide("Function 2", "It throws up a different alert"); } // Our menu items this.ss = [ { label: 'MenuItem 1', cmd: 'document.popupNode.one()', sItemId: '' }, { label: 'MenuItem 2' , cmd: 'document.popupNode.two()', sItemId: '' }]; // Our Initialization function for creating the context menu, setting up menuitems and telling // custombuttons2 extension to put cb context in a submenu this.mObj = Cb.getCbContextObj(this); this.init = function(x) { x.mObj.setSub(); var nItem = {}, mItem = {}; document.getElementById(CB2const.sCBCtxtMenu).setAttribute("oncommand", "event.stopPropagation()"); for(var i in x.ss) { nItem = new x.mObj.getItem(); nItem.id = 'Note'; nItem.label = x.ss[i].label; nItem.value = String(i); mItem = x.mObj.insertBefore(nItem , x.mObj.oMenu.lastChild); this.ss[i].sItemId = mItem.id; mItem.setAttribute('oncommand',x.ss[i].cmd) } x.mObj.getItem(); nItem = x.mObj.getItem(); nItem.id = 'Note'; this.separator = x.mObj.insertBefore( nItem , x.mObj.oMenu.lastChild); } this.init(this); this.setAttribute('onclick', 'custombuttons.gQuot.mHandler(event, this)'); this.setAttribute('ondblclick', 'custombuttons.gQuot.gShowPopup(this);'); this.style.opacity = '.65'; this.setAttribute("onmouseover", "if (custombuttons) custombuttons.ButtonBrt(event);" ); this.setAttribute("onmouseout", "if (custombuttons) custombuttons.ButtonDim(event);" ); this.setAttribute('author','nicholas'); this.setAttribute('version','20081119.00'); this.setAttribute('homepage', 'http://custombuttons2.com/forum/buttons/buttons-database/custom-buttons2-context-menu-demo.html'); this.setAttribute('dependency','FF3.0*, FL2.0*, TB2.0*, CB2 2.0.5*'); this.setAttribute('status','Complete'); this.setAttribute('public',true); this.setAttribute('homepage', 'http://custombuttons2.com/forum/buttons/buttons-database/custom-buttons2-context-menu-demo.html');
Отсутствует
bunda1 пишет:
Anton
глючит кнопка "Добавление закладки"
дабавил в userChrome такой код #star-button{display: none !important;}
теперь если нажать кнопу - открытая страница добавляется в папку закладок но выскакивает окошко с запросом на
"Редактирование этой закладки
Удалить 1 закладку"
как это исправить?
Можно заменить
на
var sebp = StarUI. showEditBookmarkPopup; StarUI. showEditBookmarkPopup = function () {}; PlacesCommandHook. bookmarkCurrentPage (false, f); StarUI. showEditBookmarkPopup = sebp;
Отсутствует
Infocatcher пишет:
и назначить встроенными средствами какой-нибудь Ctrl+Shift+Z.Можно добавить в секцию «код»Выделить кодКод:
var mp = this._mp; if("openPopup" in mp) mp.openPopup(this, "after_start"); else mp.showPopup(this, -1, -1, "popup", "bottomleft", "topleft");
И заменить в инициализации
else if(e.button == 0) { if(this.closedTabCount) undoCloseTab(); else this.showMenu(e, this); }
на
else if(e.button == 0) { if(this.closedTabCount) undoCloseTab(); else this.showMenu(e, this); // Allow use "command" section only from hotkey: e.preventDefault(); e.stopPropagation(); }
Отредактировано Infocatcher (14-06-2010 00:44:24)
Отсутствует
Обновил кнопку для настройки исключений cookies, ссылка та же (см. предыдущее сообщение) – обновление состояния сделано через оповещения от nsIObserverService.
Отредактировано Infocatcher (13-06-2010 19:11:35)
Отсутствует
Нужна кнопка для вставки текста в текстовые поля в положение курсора либо вместо выделенного текста. Похожая кнопка есть вот тут, но хотелось бы, чтобы у этой кнопки было выпадающее меню (примерно как у кнопки Stop all tabs). При щелчке по этому меню выбирался бы текст для вставки. При этом чтобы на кнопке вместо иконки отображался бы этот текст. По умолчанию текст для вставки берётся из первого пункта списка.
Нужно для вставки всяких хитрых спецсимволов.
Возможно такое сделать?
Отсутствует
MySh пишет:
Нужна кнопка для вставки текста в текстовые поля в положение курсора либо вместо выделенного текста.
В первом приближении как-то так (в инициализацию):
this.appendChild(parseFromXML( <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" oncommand="this.parentNode.insertText(event.target.getAttribute('cb_text'));"> <menuitem cb_text="≥" label="≥" /> <menuitem cb_text="≤" label="≤" /> <menuseparator /> <menuitem cb_text="©" label="©" /> </menupopup> )); this.type = "menu"; this.orient = "horizontal"; this.insertText = function(str) { var command = "cmd_insertText"; var controller = document.commandDispatcher.getControllerForCommand(command); if(controller && controller.isCommandEnabled(command)) { controller = controller.QueryInterface(Components.interfaces.nsICommandController); var params = Components.classes["@mozilla.org/embedcomp/command-params;1"] .createInstance(Components.interfaces.nsICommandParams); params.setStringValue("state_data", str); controller.doCommandWithParams(command, params); } }; function parseFromXML(xml) { var pp = XML.prettyPrinting; XML.prettyPrinting = false; var elt = new DOMParser().parseFromString(xml.toXMLString(), "application/xml").documentElement; XML.prettyPrinting = pp; return elt; }
С иконками сложнее. И не совсем понятно, что требуется получить.
Отсутствует
MySh
http://forum.mozilla-russia.org/viewtop … 95#p421795
+
http://forum.mozilla-russia.org/viewtop … 57#p428857
+ canvas
var menu = <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" oncommand="this.parentNode.handleMenuCommand(event)"> <toolbarbutton value="¤"/> <toolbarbutton value="¦"/> <toolbarbutton value="§"/> <toolbarbutton value="©"/> <toolbarbutton value="«"/> <toolbarbutton value="»"/> <toolbarbutton value="¬"/> <toolbarbutton value="®"/> <toolbarbutton value="°"/> <toolbarbutton value="±"/> <toolbarbutton value="µ"/> <toolbarbutton value="¶"/> <toolbarbutton value="—"/> <toolbarbutton value="‘"/> <toolbarbutton value="’"/> <toolbarbutton value="“"/> <toolbarbutton value="”"/> <toolbarbutton value="•"/> <toolbarbutton value="‰"/> <toolbarbutton value="‹"/> <toolbarbutton value="›"/> <toolbarbutton value="™"/> </menupopup>; menu = custombuttonsUtils. makeXML (menu); this. appendChild (menu); this. value = menu. firstChild. getAttribute ("value"); this. makePNG = function (text, height) { var h = height; var cw = 24, ch = 24; var canvas = <canvas xmlns="http://www.w3.org/1999/xhtml" width={cw} height={ch} style="display:none;"></canvas>; cw -= 2; ch -= 2; canvas = custombuttonsUtils. makeXML (canvas); this. appendChild (canvas); var ctxt = canvas. getContext ("2d"); ctxt. clearRect (0, 0, cw, ch); ctxt. font = h + "pt times bold" var m = ctxt. measureText (text); m = (cw - m. width) / 2.0; h = ch - (ch - h) / 2.0; ctxt. fillText (text, m, h); var uri = canvas. toDataURL ("image/png", ""); this. removeChild (canvas); return uri; }; this. image = this. makePNG (this. value, 16); var mi, val; for (var i = 0; i < menu. childNodes. length; i++) { mi = menu. childNodes [i]; val = mi. getAttribute ("value"); val = this. makePNG (val, 12); mi. setAttribute ("image", val); } this. insertText = function (text) { var command = "cmd_insertText"; var controller = document. commandDispatcher. getControllerForCommand (command); if (controller && controller. isCommandEnabled (command)) { controller = controller. QueryInterface (Components. interfaces. nsICommandController); var params = Components. classes ["@mozilla.org/embedcomp/command-params;1"]. createInstance (Components. interfaces. nsICommandParams); params. setStringValue ("state_data", text); controller. doCommandWithParams (command, params); } }; this. handleMenuCommand = function (event) { event. stopPropagation (); var mi = event. originalTarget; var text = mi. getAttribute ("value"); this. image = this. makePNG (text, 16); this. value = text; this. insertText (text); }; this. type = "menu-button";
Отсутствует