Это я сразу понял. Мне интересно куда дальше используют полученный base64.
userChrome\userContent (чтобы не городить кучу иконок на диске, а держать всё в одном файле), просто в css на сайте использую в некоторых моментах (когда небольшие картинки).
Просто как пример:
/* Показ альфа-канала (если он есть) при наведении курсора мыши на картинку (ПКМ - Показать изображение) */ html:not([xmlns]):not([dir]):not([lang]) body > img:only-child:only-of-type:hover { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAAAAACo4kLRAAAAG0lEQVR42mO4AwLvQADBookggo9g0UJw+PkIAJdvZeAMVgxlAAAAAElFTkSuQmCC") !important; }
Зачем еще копировать результат из адресной строки, если кнопка сама уже скопировала результат. Я не понимаю в чём тут фишка.
ну пусть будет так, просто привык видеть что копирую.
Отсутствует
Привет ! Обновил Firefox до 51.0.1 (portable apps) - перестали работать все кнопки (штук 10) пропали подсказки к кнопкам.
Что случилось ? Может есть универсальное решение как всё поправить ?
Как же быть ?!
Может подождать обновления Custom Buttons 0.0.5.8.9 до следующей версии ?
Отредактировано citehala (31-01-2017 20:26:17)
Отсутствует
Привет ! Обновил Firefox до 51.0.1 (portable apps) - перестали работать все кнопки (штук 10) пропали подсказки к кнопкам.
Что случилось ? Может есть универсальное решение как всё поправить ?
Как же быть ?!
Добавлено 31-01-2017 20:32:20
Может подождать обновления Custom Buttons 0.0.5.8.9 до следующей версии ?
Отредактировано bunda1 (31-01-2017 20:32:20)
Отсутствует
Добрый день! Уважаемый bunda1, прошу Вас не забыть, очень надо.
https://forum.mozilla-russia.org/viewto … 31#p730131
Отредактировано Duche (01-02-2017 14:39:43)
Отсутствует
Добрый день! Уважаемый bunda1, прошу Вас не забыть, очень надо.
https://forum.mozilla-russia.org/viewto … 31#p730131
Пока не знаю что сделать с этим вопросом, потому что не понимаю код который ты привёл
Отсутствует
Duche пишетДобрый день! Уважаемый bunda1, прошу Вас не забыть, очень надо.
https://forum.mozilla-russia.org/viewto … 31#p730131Пока не знаю что сделать с этим вопросом, потому что не понимаю код который ты привёл
Это кусок кода для примера всплывающей подсказки от моей рабочей кнопки "Двойным левым кликом на папке закладок добавлять закладку в папку закладок, от 09.05.2014" для примера всплывающей подсказки.
А так нужно дополнение для кнопки , добавляющее новую функцию и пункт в контекстное меню "Удалить эту страницу из закладок" - удалить открытую из сохранённых закалок вкладку и автоматически закрыть удаляемую вкладку после выполнения команды "Удалить эту страницу из закладок" с показом всплывающей подсказки в верху справа.
Двойным левым кликом на папке закладок добавлять закладку в папку закладок, от 09.05.2014. ................................ addEventListener("dblclick", function(e) { var target = e.originalTarget; if ( e.button !== 0 || !target._placesNode || !PlacesUtils.nodeIsFolder( target._placesNode ) ) return; var docTitle = ( content.document.title || gBrowser.mCurrentTab.label).substr(0, 50); var folderId = PlacesUtils.getConcreteItemId( target._placesNode ); var folderTitle = PlacesUtils.bookmarks.getItemTitle( folderId ); var currentURI = Services.io.newURI( content.location, null, null ); PlacesUtils.bookmarks.insertBookmark( folderId, currentURI, 0, docTitle ); // всплывающая подсказка низ .... //var favicon = gBrowser.mCurrentTab.image || "chrome://global/skin/icons/Portrait.png"; //Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService) //.showAlertNotification(favicon, "Добавил в папку " + folderTitle + ":", docTitle); document.getElementById("contentAreaContextMenu").hidePopup(); // всплывающая подсказка верх .... ((url, icon) => PlacesUtils.promiseFaviconLinkUrl(gBrowser.currentURI).then( uri => icon = uri.spec, () => icon = "chrome://global/skin/icons/Portrait.png" ).then(() => document.getElementById("contentAreaContextMenu").hidePopup() || openDialog( url, "", "popup=yes", icon, "Добавил в папку " + folderTitle + ":", docTitle, false, null, 4 )))("chrome://global/content/alerts/alert.xul"); });
Надо приблизительно так , а иконку к строке "Удалить эту страницу из закладок" я пропишу сам.
Отредактировано Duche (01-02-2017 17:12:47)
Отсутствует
bunda1
Давай я сделаю вброс, а вы с Duche обсудите
((popup, menugroup, bs) => addEventListener("popupshowing", { handleEvent(e) { if (this.shouldHide()) return; var before = popup.querySelector("#page-menu-separator + *"); var menuitem = popup.insertBefore(document.createElement("menuitem"), before); addDestructor(() => menuitem.remove()); var attrs = { label: "Удалить эту страницу из закладок", class: "menuitem-iconic", oncommand: "removeBookmarks();" }; for(var attr in attrs) menuitem.setAttribute(attr, attrs[attr]); var crop = (str, limit = 100) => str.length <= limit ? str : str.slice(0, limit) + "…"; var notify = (num, msg) => { var forms = gNavigatorBundle.getString("editBookmark.removeBookmarks.label").replace(/ть/g, "л"); (notify = (num, msg) => openDialog( "chrome://global/content/alerts/alert.xul", "", "popup=yes", menuitem.image, PluralForm.get(num, forms).replace("#1", num), msg, false, null, 4 ))(num, msg); } menuitem.removeBookmarks = () => { var msg = crop(gBrowser.currentURI.spec) + "\n\n\Из:\n", num = 0; for(var id of this.ids) { var folder = bs.getFolderIdForItem(id); if (bs.getFolderIdForItem(folder) == PlacesUtils.tagsFolderId) continue; bs.removeItem(id); num++; msg += "\n" + (bs.getItemTitle(folder) || "[Безымянная папка]"); } gBrowser.removeCurrentTab(); notify(num, msg); } (this.handleEvent = () => { if ((menuitem.hidden = this.shouldHide())) return; var icon = gBrowser.selectedBrowser.mIconURL; menuitem.image = icon ? "moz-anno:favicon:" + icon : PlacesUtils.favicons.defaultFavicon.spec; })(); }, shouldHide(e) { if (menugroup.hidden) return true; var ids = bs.getBookmarkIdsForURI(gBrowser.currentURI); if (!ids.length) return true; this.ids = ids; } }, false, popup))( document.getElementById("contentAreaContextMenu"), document.getElementById("context-navigation"), PlacesUtils.bookmarks );
Отсутствует
Давай я сделаю вброс, а вы с Duche обсудите
Всё работает отлично. Можно, чуть доработать кнопку в части- Поднять в контекстном меню "Удалить эту страницу из закладок" на строку выше "Обновлять вкладку каждые" но ниже "Открыть | Добавить как закладку в" и во всплывающей подсказке, сделать "Удалил из ----------- в оду линию с "откуда удалил" без ступеньки как сейчас.
Спасибо.
Отредактировано Duche (01-02-2017 18:53:39)
Отсутствует
Dumby пишетДавай я сделаю вброс, а вы с Duche обсудите
Всё работает отлично. Можно, чуть доработать кнопку в части- Поднять в контекстном меню "Удалить эту страницу из закладок" на строку выше "Обновлять вкладку каждые" но ниже "Открыть | Добавить как закладку в"
Отсутствует
Просьба к bunda1. Есть Ваш старый код от 01-02-2011,для отображения в контекстном меню пункта "Печать". Только сейчас заметил , при редактировании кнопки , где лежит код , через "Редактировать" кнопку (без изменения кода , просто нажал "редактировать" и "отмена") , сколько раз воспользуешься функцией "Редактировать" кнопку , столько пунктов "Печать" и появляется в контекстном меню 2,3,4,5, пока не перезагрузишь Firefox. После перезагрузки, как и положено один пункт "Печать". Посмотрите пожалуйста, где ошибка в коде.
/*Initialization Code*/ (function() { var menuitem = document.createElement("menuitem"); menuitem.setAttribute("oncommand", 'content.window.print();'); menuitem.setAttribute("label", "\print"); var saveimagecm = document.getElementById("context-saveimage"); saveimagecm.parentNode.insertBefore(menuitem, saveimagecm); })();
Отсутствует
Duche
(()=> { var menuitem = document.createElement("menuitem"); menuitem.setAttribute("oncommand", 'content.window.print();'); menuitem.setAttribute("label", "Print"); var saveImage = document.getElementById("context-saveimage"); saveImage.parentNode.insertBefore(menuitem, saveImage); addDestructor(()=> menuitem.remove() ); })();
Отсутствует
bunda1 Спасибо за работу! Примите искреннюю благодарность.
Всё работает отлично.Только добавил иконку.
Вопрос для самообразования:Сколько можно "подсовывать" в одну кнопку дополнений для контекстного меню и т.д. без влияния на производительность Firefox.
Как правильно разместить мои изменения, которые лежат по готовым кнопкам в одной кнопке или файле.
Отредактировано Duche (02-02-2017 20:15:12)
Отсутствует
Сколько можно "подсовывать" в одну кнопку дополнений для контекстного меню и т.д. без влияния на производительность Firefox. Как правильно разместить мои изменения, которые лежат по готовым кнопкам в одной кнопке или файле.
Не дополнений, а кодов для контекстного меню, можно "подсовывать" в одну кнопку десятками без влияния на производительность. Что бы такие коды "подсовывать" в одну кнопку их надо оборачивать в анонимную функцию (()=> { тут какой то код })(); вот как тут Вчера 19:09:20. У меня например в одной кнопке где то 40 таких кодов.
Отсутствует
можно "подсовывать" в одну кнопку десятками
Спасибо за полезную информацию , проверил и "обернул" коды где не хватало функции (()=> { тут какой то код })(); .
Ещё одна просьба-хотелочка. Переделать код готовой кнопки "Удалить куки текущего сайта" для отображения "Удалить куки текущего сайта" в контекстное меню, в приведённом ниже виде. Хочется что бы отображалась фавиконка сайта с которого будут удалены куки , а команда "Удалить" появлялась по типу "выпадающего списка". Выпадающий список , это для того чтобы рука не дрогнула при простом открытии контекстного меню (страховка от "дурака"). Потом всё положу в готовую кнопку.
Заранее спасибо.
https://forum.mozilla-russia.org/viewto … 32#p729832
Отсутствует
Как задать паузу между командами, скажем в 2000 ms?
Отсутствует
Coroner
так киньте ссылку где написано, в чем проблема?
Отсутствует
Ещё одна просьба-хотелочка. Переделать код готовой кнопки "Удалить куки текущего сайта" для отображения "Удалить куки текущего сайта" в контекстное меню, в приведённом ниже виде. Хочется что бы отображалась фавиконка сайта с которого будут удалены куки , а команда "Удалить" появлялась по типу "выпадающего списка". Выпадающий список , это для того чтобы рука не дрогнула при простом открытии контекстного меню (страховка от "дурака"). Потом всё положу в готовую кнопку.
// Удалить куки текущего сайта в контекстном меню на странице, от 04.02.2017. ................ (contextMenu=> { var menu = contextMenu.appendChild(document.createElement("menu")); menu.id = "content-removeCookies." menu.setAttribute("label", "Удалить куки текущего сайта"); menu.setAttribute("class", "menu-iconic"); addEventListener("popupshowing", ()=> menu.setAttribute("image", gBrowser.mCurrentTab.image), false, contextMenu); addDestructor(()=> menu.remove() ); var menuPopup = menu.appendChild(document.createElement("menupopup")); var menuitem = menuPopup.appendChild(document.createElement("menuitem")); menuitem.setAttribute("label", "Удалить"); menuitem.onclick =()=> { var host = Services.eTLD.getBaseDomain(gBrowser.currentURI); for ( var en = Services.cookies.enumerator; en.hasMoreElements(); ) { var cookie = en.getNext().QueryInterface(Ci.nsICookie); ~cookie.host.indexOf(host.trim()) && Services.cookies.remove(cookie.host, cookie.name, cookie.path, false); } var reversedDomain = host.split("").reverse().join("") + "."; Cu.import("resource://gre/modules/FileUtils.jsm"); var file = FileUtils.getFile("ProfD", ["webappsstore.sqlite"]); var dbConn = Services.storage.openDatabase(file); dbConn.executeSimpleSQL("DELETE FROM webappsstore2 WHERE scope LIKE \"%" + reversedDomain +"%\""); dbConn.close(); }; })(document.getElementById("contentAreaContextMenu"));
Отсутствует