Как мне кажется addEventListener одинокий и как таковой
уже любезно переопределён автором Custom Buttons.
Нет, не так. addEventListener — это функция, и она не переопределяет одноимённый метод DOM'овских объектов, а определяется вместе с кодом кнопки всякий раз, как он выполняется, так же, как если бы её код был записан вместе с кодом кнопки.
в custombuttons-0.0.5.6pre4-20130127.xpi лишние обработчики теперь сами удаляются?
Обработчики, которые ставятся с помощью функции (не метода) addEventListener, автоматически снимаются при удалении, редактировании или обновлении кнопки.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
custombuttons-0.0.5.6pre5-20130226 115kB
Marked compatible with Firefox 22.0a1
Implemented synchronization of the custom buttons' list in the Add-ons Manager for operations with the buttons in the browser window
Отсутствует
bunda1 пишетв custombuttons-0.0.5.6pre4-20130127.xpi лишние обработчики теперь сами удаляются?
Обработчики, которые ставятся с помощью функции (не метода) addEventListener, автоматически снимаются при удалении, редактировании или обновлении кнопки.
Спасибо. Желаю тебе успехов в работе над Custom Buttons
Добавлено 27-02-2013 21:59:33
bunda1
Почему то эта Context Search не встраивается в общий стиль.
Не знаю, но думаю что это можно легко исправить если использовать Уроки стилистики (CSS) | Форум Mozilla Россия Мне для ответа нужно знать что у тебя за тема установлена или стили.
Отредактировано bunda1 (27-02-2013 21:59:33)
Отсутствует
Здравствуйте!
Может кто-нибудь подсказать код для кнопки открывающей "Библиотеку" (именно окно с закладками, а не панель), и чтобы при ее открытии была активна та папка, которая была активна на момент последнего закрытия "Библиотеки"?
С уважением.
Отсутствует
Anton
Спасибо. Желаю тебе успехов в работе над Custom Buttons
Присоединяюсь !
Может кто-нибудь подсказать код для кнопки
Тоже весьма не уверен
var win = Services.wm.getMostRecentWindow("Places:Organizer"); if (!win) { openDialog("chrome://browser/content/places/places.xul", "", "chrome,toolbar=yes,dialog=no,resizable", "AllBookmarks"); return; } win.focus();
Инициализация
const pn = " SomePrefNane.folderURI"; var prefs = Application.prefs; if (!prefs.has(pn)) prefs.setValue(pn, ""); var pref = prefs.get(pn); const url = "chrome://browser/content/places/places.xul"; var observer = { observe: function(win) { win.addEventListener("load", this, false); }, handleEvent: function(e) { var doc = e.target; var win = doc.defaultView; if (e.type == "unload") { pref.value = win.PlacesOrganizer.location; return; } win.removeEventListener("load", this, false); if (doc.location.href != url) return; win.addEventListener("unload", this, false); setTimeout(function() { if (pref.value) win.PlacesOrganizer.location = pref.value; win.PlacesOrganizer._places.focus(); }, 100); } } Services.obs.addObserver(observer, "domwindowopened", false); this.onDestroy = function(reason) { try { Services.obs.removeObserver(observer, "domwindowopened"); } catch (ex) {} if (reason == "delete") pref.reset(); }
Отредактировано Dumby (01-03-2013 21:23:46)
Отсутствует
Тоже весьма не уверен
Да это же отличный код, но как добиться то же самое если открыть chrome://browser/content/places/places.xul как вкладку:
// Обработчик следит запуском всех команд и запускает нужные коды и функции ......................................... window.addEventListener("command", function(e) { var command = e.target.getAttribute("oncommand"); // открывать 'Библиотеку' в вкладке .... if ( command == "PlacesCommandHook.showPlacesOrganizer('History');" || command == "PlacesCommandHook.showPlacesOrganizer('AllBookmarks');") { e.preventDefault(); e.stopPropagation(); gBrowser.loadOneTab("chrome://browser/content/places/places.xul", null, null, null, false, false); } }, true);
Отсутствует
bunda1
№6539
Ещё в редакторе кнопок Custom Buttons и стилий Stylish не работает
Добавлено 01-03-2013 22:53:06
Да это же отличный код, но как добиться то же самое если открыть chrome://browser/content/places/places.xul как вкладку:
Как я понимаю скоро появится очередная замечательная кнопочка? Ждёмс.
Отредактировано voqabuhe (01-03-2013 22:53:06)
Отсутствует
Ещё в редакторе кнопок Custom Buttons и стилий Stylish не работает
Как я понимаю скоро появится очередная замечательная кнопочка? Ждёмс.
Исправим. И кнопку сделаем если добрый Dumby поможет.
Отсутствует
как добиться то же самое если открыть chrome://browser/content/places/places.xul как вкладку:
Вот, попытка...
const pn = " SomePrefName.folderURI"; var prefs = Application.prefs; if (!prefs.has(pn)) prefs.setValue(pn, ""); var pref = prefs.get(pn); const url = "chrome://browser/content/places/places.xul"; const command = "PlacesCommandHook.showPlacesOrganizer('AllBookmarks');" function openInTab(e) { if (e.target.getAttribute("oncommand") != command) return; e.stopPropagation(); for (var tab = gBrowser.tabs[0]; tab; tab = tab.nextSibling) { var loc = tab.linkedBrowser.contentDocument.location; if (loc == url) { var tvti = tab._tabViewTabItem; if (tvti && tvti.parent != TabView._window.GroupItems._activeGroupItem) TabView.moveTabTo(tab, TabView._window.GroupItems._activeGroupItem.id); gBrowser.selectedTab = tab; return; } } gBrowser.loadOneTab(url, null, null, null, false, false); } function onDCL(e) { var win = e.target.defaultView; if (win.location != url) return; setTimeout(function() { if (pref.value) win.PlacesOrganizer.location = pref.value; win.PlacesOrganizer._places.focus(); }, 100); win.addEventListener("unload", function onUnload(e) { win.removeEventListener("unload", onUnload, false); pref.value = win.PlacesOrganizer.location; }, false); } addEventListener("click", openInTab, true, window); addEventListener("command", openInTab, true, window); addEventListener("DOMContentLoaded", onDCL, false, gBrowser); this.onDestroy = function(reason) { if (reason == "delete") pref.reset(); };
посмотрев что хранится в конфиге выяснил что папки там просто пронумерованы,а можно ли както получить общее количество папок
Пронумерованы они странно, сам посмотри (жмяк)
var bookmarksService = Cc["@mozilla.org/browser/nav-bookmarks-service;1"].getService(Ci.nsINavBookmarksService); var historyService = Cc["@mozilla.org/browser/nav-history-service;1"].getService(Ci.nsINavHistoryService); var options = historyService.getNewQueryOptions(); var query = historyService.getNewQuery(); var str = ""; var count = 0; function test(folderId) { query.setFolders([folderId], 1); var folder = historyService.executeQuery(query, options).root; folder.containerOpen = true; for (var i = 0; i < folder.childCount; i ++) { var child = folder.getChild(i); if (child.type != child.RESULT_TYPE_FOLDER) continue; var title = child.title || "(без заголовка)"; str += "[" + child.itemId + "] " + title + "\n"; count++; test(child.itemId); } folder.containerOpen = false; } test(bookmarksService.placesRoot); alert(count); alert(str);
и соответственно по номеру получить её название
Это, вроде, не сложно
var folderId = 2; var navBookmarksService = Cc["@mozilla.org/browser/nav-bookmarks-service;1"].getService(Ci.nsINavBookmarksService); var title = navBookmarksService.getItemTitle(folderId); alert(title);
есть ли у папки какойто атрибут позволяющий её скрывать или делать недоступной?
А вот это мне неведомо
Отсутствует
есть ещё пожелание чтоб работало еще и с этой кнопкой
Строка: addEventListener("DOMContentLoaded", onDCL, false, gBrowser);
попробуй заменить gBrowser на
document.getElementById("appcontent")
Отсутствует
Обработчики, которые ставятся с помощью функции (не метода) addEventListener, автоматически снимаются при удалении, редактировании или обновлении кнопки.
Кстати, в SeaMonkey 2.16 + Custom Buttons 0.0.5.6pre5 не работает:
addEventListener("TabOpen", function(e) { var tab = e.originalTarget || e.target; var doc = tab.ownerDocument; var box = doc.getAnonymousElementByAttribute(tab, "class", "tab-middle box-inherit"); if(!box) throw new Error("Can't find hbox.tab-middle"); var btn = doc.createElement("toolbarbutton"); btn.setAttribute("oncommand", "gBrowser.removeTab(this.parentNode.parentNode);"); btn.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAq1BMVEWsP0mvQkymOUSGICh4FyGDHyj////9hYWtP0ngeXrienrtfX+pO0X6eXnebm/MlJXYqanRcXKlNkD3a2vfY2TSk5T0gYHUnp+bLDXxgIDQNDS7OTqWJzDQLS3GLS2yODnEhoeSJS3SMDC8LzDIjIzGhoeOIyvXNjbANTW9dnfEfX6/PT6LISncPT3VPD3FOzzIOzzYPT3XUFHVNTX+jo7FhYayRU6IIiruX18GggqCAAAABnRSTlOZmTOZM5nlPZ+bAAAAeklEQVR4Xi3AUwLDQBAA0Ikmtm1bbe9/sv7sA5r6EBQNID+EDCDwniiFoSR6vACKqumGaRq6pipg2Y6Lvo+uY1sQ3FH8Ir5xdAeQpFleIBZ5liZQVnWDbYtNXZXQ9cM4zfM0Dn0Hy7rtx3ke+7YuwFw/4mKA5b4Ex/4BzUsRs1W0PbwAAAAASUVORK5CYII="); btn.tooltipText = "Close Tab"; box.appendChild(btn); }, true);
(инициализация)
После перезапуска и добавления новой вкладки кнопок на ней окажется две.
И да, это типа пример добавления кнопок на вкладки без переопределения XBL-binding'а для .tabbrowser-tab.
Только кнопки эти не работают.
И как сделать их доступными без тех же binding'ов, я не знаю.
Но у меня просили пример, и вот он.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Здравствуйте, сделал кнопку для открытия url - всё работает. Есть два вопроса:
1. Как сделать так чтобы по средней кнопке мыши url добавлялась вкладка как она добавляется по умолчанию в ff при нажатии на любой адресс
2. Как уменьшить границы кнопки с иконкой, т.е. чтобы иконка оставалась такой же, а расстояние до краёв кнопки и собственно сама кнопка была меньше дефолтной?
Спасибо.
Отсутствует
1. Как сделать так чтобы по средней кнопке мыши url добавлялась вкладка как она добавляется по умолчанию в ff при нажатии на любой адресс
2. Как уменьшить границы кнопки с иконкой, т.е. чтобы иконка оставалась такой же, а расстояние до краёв кнопки и собственно сама кнопка была меньше дефолтной?
Не очень понятно что требуется
Отсутствует
пример добавления кнопок на вкладки без переопределения XBL-binding'а для .tabbrowser-tab.
Более полноценный пример: tabButtons.js
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Подскажите пожалуйста, можно ли сделать перевод этой кнопкой Translate, по примеру дополнения Google Translator, заменой иностранного текста на русский. С активацией через контекстное меню при выделении текста.
Отсутствует
bunda1
Translate после обновления странно работает, переводит в гугле, даже если выбран переводчик MS и если отключена опция "Перевод страницы с заменой текста". Если опция "Перевод страницы с заменой текста" включена и выбран переводчик MS, то тогда нормально переводит в MS, но если выбран переводчик гугл при включенной опции "Перевод страницы с заменой текста", то тогда вообще ничего не переводится.
Отсутствует
LEX1
Давно хотел, да повода не было, а тут как раз про переводчики тема пошла. Использую именно Вашу кнопку, для меня наиболее удобную, (активация из контекстного меню, не надо к кнопке тянуться, не перегружена пунктами меню, подменю, всего два, для меня достаточно)
но есть маленькое неудобство, уж слишком маленькая кнопка закрытия окна, не всегда с первого раза удаётся закрыть, особенно когда хочется быстро. Может можно увеличить область действия кнопки закрытия, ну а в идеале закрывать кликом по странице в любом месте, как в этой кнопке http://forum.mozilla-russia.org/viewtop … 50#p486850 Спасибо.
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
в 2.16 кнопку создаёт но она не рабочая.
Что именно не рабочее?
По поводу SeaMonkey там уже написано:
Боюсь, с этим – к разработчикам SeaMonkey. Я вот не понимаю, в чем смысл создавать свой <tabbrowser> и делать свои вкладки, когда можно взять готовый и доработать стилями.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
rota пишет1. Как сделать так чтобы по средней кнопке мыши url добавлялась вкладка как она добавляется по умолчанию в ff при нажатии на любой адресс
2. Как уменьшить границы кнопки с иконкой, т.е. чтобы иконка оставалась такой же, а расстояние до краёв кнопки и собственно сама кнопка была меньше дефолтной?Не очень понятно что требуется
Отредактировано rota (08-03-2013 17:57:17)
Отсутствует
villa7
Оно закрывается ещё и по Esc. Размер можно изменить здесь: display:block;float:right;width:18px;height:18px;
И добавить после этого:
Отсутствует