Пожалуйста люди дайте-
1)простую кнопку которая бы добавляла открытую страницу в папку закладок (по лкм, папка указана коде кнопки),
2)простую кнопку которая бы удаляла все закладки из папки закладок(по лкм, папка указана коде кнопки)
Отсутствует
кстати заметил то что иногда на новой версии кнопки не отрабатывает скрытие основного кнопочного меню по пкм
Тогда оно и на старой версии могло происходить – эту часть я не трогал.
Подправил. Должно помочь.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
okkamas_knife
у меня меняется при наведении, как и должно. Но там картинки оч похожие, это я их выдирал из Undo Closed Tabs button дополнения.
Если всё же совсем не меняются - значит у тя такой же как и у меня глюк с каритнками для некоторых КБ кнопок, я вот думаю себе профиль новый сделать, уже проверил - на нём всё чётко.
mzfx
Отсутствует
P.S. Вообще, хорошо бы или другой метод (onRebuild, например) или аргументом в onDestroy передавать.
А почему просто не перекрыть стиль новым ?
Добавлено 05-06-2010 13:28:00
Вопрос такого плана. А почему Custom Buttons не хочет работать в CometBird? Остальные (за все не скажу), которые скачал работают.
Версия CometBird 3.6.3
Потому что Custom Buttons использует имя приложения для создания оверлеев и инициализации при загрузке, а в CometBird компонент nsIXULAppInfo возвращает "CometBird", а не "Firefox".
Я попробую это как-нибудь исправить, и, возможно, расширение будет работать в CometBird.
Добавлено 05-06-2010 13:33:23
Подскажите примерный код кнопки для выполнения таких действий:
анализ исходника на ключевую фразу вида "Найди здесь %s мышь", где %s - переменная цифра, а затем ввод слова из заранее имеющегося массива за номером %s, то есть my_array[%s] в поле единственной формы и submit.
Нужен исходник для тестирования.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Пожалуйста люди дайте-
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);
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton
1)кнопка "Добавление закладки" не всегда добавляет в папку закладок закладки , кнопка некоторие открытие страници добавляет, некоторие нет (пример -главную страницу http://www.softodrom.ru/) не хочет добавлять, что делать?
2)как изменить код чтобы кнопки работали если папка закладок находится на панеле закладок?
Отредактировано bunda1 (05-06-2010 21:10:48)
Отсутствует
А почему просто не перекрыть стиль новым ?
Убирание старого стиля нужно только для удобства редактирования. Если старый не убран, нужно все время помнить, что там было сделано раньше, чтобы вовремя понять, что наблюдаемые глюки – наследство от прошлых экспериментов.
А старый стиль, чтобы можно было его убрать, должен где-то запоминаться – или исходная строка, или URI.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
bunda1
1)кнопка "Добавление закладки" не всегда добавляет в папку закладок закладки , кнопка некоторие открытие страници добавляет, некоторие нет (пример -главную страницу http://www.softodrom.ru/) не хочет добавлять, что делать?
У меня главную страницу http://www.softodrom.ru/ - добавляет, что я делаю не так ?
2)как изменить код чтобы кнопки работали если папка закладок находится на панеле закладок?
Заменить
на
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Разобрался сам не добавляется те страницы которые уже есть в закладках.
Да, функция Firefox PlacesCommandHook. bookmarkCurrentPage не делает дубликаты закладок.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
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 (); }
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Ну вот, в кнопке для отмены закрытия вкладок тоже использовалась функция navigator.preference().
Тестовая версия, код для секции «инициализация»: undoCloseTabsList-0.2.0b1.js.
Основная плюшка – шаблон, задающий порядок пунктов в меню:
this.settings = { menuTemplate: [ "closedWindows", "separator", "restoreClosedWindows", "clearClosedWindows", "separator", "closedTabs", "separator", "restoreClosedTabs", "clearClosedTabs", "separator", "clearAll" ], openMenuOnMouseover: false };
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
1 сделал чтоб при выбранной картинке иконки менялись(тупо this.image="" в начале добавил)) чтоб при сохранении картинка была
Можно и добавить... А при распространении через custombutton-ссылку эта проблема должна отпадать. Мне же удобнее в виде кода хранить.
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.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
а стандартную контрол+шифт+Т сменить както можно?
Или 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');
Отсутствует
Anton
глючит кнопка "Добавление закладки"
дабавил в userChrome такой код #star-button{display: none !important;}
теперь если нажать кнопу - открытая страница добавляется в папку закладок но выскакивает окошко с запросом на
"Редактирование этой закладки
Удалить 1 закладку"как это исправить?
Можно заменить
на
var sebp = StarUI. showEditBookmarkPopup; StarUI. showEditBookmarkPopup = function () {}; PlacesCommandHook. bookmarkCurrentPage (false, f); StarUI. showEditBookmarkPopup = sebp;
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
и назначить встроенными средствами какой-нибудь 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(); }
Заодно исправил контекстное меню – теперь пункты можно нажимай правой кнопкой мыши: undoCloseTabsList-0.2.0b3.js (пожалуй, все еще тестовая)
И странности с подавлением стандартного меню мне поднадоели, так что теперь оно полностью удаляется, а показом управляет уже сама кнопка.
Кнопка для настройки исключений cookies (по умолчанию / блокировать / разрешить на сессию / разрешить)
cookiesPermissions.js (тоже пока тестовая )
ЛКМ – переключить разрешение
СКМ или ЛКМ с любым модификатором – показать список исключений
ПКМ – показать меню разрешений
ПКМ с любым модификатором – показать стандартное меню кнопки
Отредактировано Infocatcher (14-06-2010 00:44:24)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Обновил кнопку для настройки исключений cookies, ссылка та же (см. предыдущее сообщение) – обновление состояния сделано через оповещения от nsIObserverService.
Отредактировано Infocatcher (13-06-2010 19:11:35)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Нужна кнопка для вставки текста в текстовые поля в положение курсора либо вместо выделенного текста. Похожая кнопка есть вот тут, но хотелось бы, чтобы у этой кнопки было выпадающее меню (примерно как у кнопки Stop all tabs). При щелчке по этому меню выбирался бы текст для вставки. При этом чтобы на кнопке вместо иконки отображался бы этот текст. По умолчанию текст для вставки берётся из первого пункта списка.
Нужно для вставки всяких хитрых спецсимволов.
Возможно такое сделать?
Отсутствует
Нужна кнопка для вставки текста в текстовые поля в положение курсора либо вместо выделенного текста.
В первом приближении как-то так (в инициализацию):
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";
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует