>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Сustom Buttons http://forum.mozilla-russia.org/viewforum.php?id=34 >[CB]Восстановить иконки всех закладок http://forum.mozilla-russia.org/viewtopic.php?id=64428 |
bunda1 > 02-08-2014 13:58:14 |
Добавить новый пункт "Восстановить иконки всех закладок" в меню "Закладки"( Firefox 24 + ) Выделить код Код:// Добавить новый пункт "Восстановить иконки всех закладок" в меню "Закладки", от 04.10.2016. .............. (()=> { // Создать новый пункт в меню "Закладки" .... var menuitem = document.createElement("menuitem"); var sep = document.getElementById("organizeBookmarksSeparator"); sep.parentNode.insertBefore(menuitem, sep); menuitem.setAttribute("label", "Восстановить иконки всех закладок"); menuitem.onclick =e=> chooseBookmarks(); addDestructor(()=> menuitem.remove()); // Перебрать все http(s) закладки .... function chooseBookmarks(id = 1) { var folder = PlacesUtils.getFolderContents(id).root; folder.QueryInterface(Ci.nsINavHistoryContainerResultNode); folder.containerOpen = true; for ( var i = 0; i < folder.childCount; i++ ) { var child = folder.getChild(i); PlacesUtils.nodeIsFolder(child) ? chooseBookmarks(child.itemId) : child.uri.startsWith("http") && child.icon == '' && getSiteFavicon(child.uri); } folder.containerOpen = false; }; // Добавить иконки к закладкам с одинаковыми адресами .... function setBookFavicon(siteURI, faviconURI) { var iconURI = Services.io.newURI( faviconURI, null, null); var bookmarkURI = Services.io.newURI( siteURI, null, null ); PlacesUtils.favicons.setAndFetchFaviconForPage( bookmarkURI, iconURI, false, this.FAVICON_LOAD_NON_PRIVATE, null, Services.scriptSecurityManager.getSystemPrincipal() ) }; // Получить адрес иконки закладки и запустить установку иконки .... function getSiteFavicon(siteURI) { var hostURI = "http://" + siteURI.split(/\/+/g)[1] + "/"; var faviconURI = hostURI + "favicon.ico"; // адрес иконки, если не получить адрес иконки из сайта // получить адрес иконки из документа сайта закладки var xhr = new XMLHttpRequest(); xhr.open("GET", siteURI, true); xhr.responseType = "document"; xhr.onload = xhr.onerror =()=> { var doc = xhr.responseXML; if ( doc !== null ) { var links = doc.getElementsByTagName("link"); [...links].forEach(link=> { if ( /(?:^|\s)icon(?:\s|$)/.test(link.rel.toLowerCase()) ) faviconURI = link.href }); } setBookFavicon(siteURI, faviconURI); // запустить установку иконки } xhr.send(); }; })(); Восстановить иконки всех закладок( Firefox 24 + ) Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0412%u043E%u0441%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0432%u0441%u0435%u0445%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis._handleClick%20%3D%28%29%3D%3E%20chooseBookmarks%28%29%3B%0A%0A//%20%u041F%u0435%u0440%u0435%u0431%u0440%u0430%u0442%u044C%20%u0432%u0441%u0435%20http%28s%29%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0438%20....%0Afunction%20chooseBookmarks%28id%20%3D%201%29%20%7B%0A%20%20%20var%20folder%20%3D%20PlacesUtils.getFolderContents%28id%29.root%3B%0A%20%20%20%0A%20%20%20folder.QueryInterface%28Ci.nsINavHistoryContainerResultNode%29%3B%0A%20%20%20folder.containerOpen%20%3D%20true%3B%0A%0A%20%20%20for%20%28%20var%20i%20%3D%200%3B%20i%20%3C%20folder.childCount%3B%20i++%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20var%20child%20%3D%20folder.getChild%28i%29%3B%0A%20%20%20%0A%20%20%20%20%20%20%20%20%20PlacesUtils.nodeIsFolder%28child%29%0A%20%20%20%20%20%20%20%20%20%3F%20chooseBookmarks%28child.itemId%29%0A%20%20%20%20%20%20%20%20%20%3A%20child.uri.startsWith%28%22http%22%29%20%26%26%20child.icon%20%3D%3D%20%27%27%20%26%26%20getSiteFavicon%28child.uri%29%3B%0A%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20folder.containerOpen%20%3D%20false%3B%0A%7D%3B%0A%0A//%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u043A%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0430%u043C%20%u0441%20%u043E%u0434%u0438%u043D%u0430%u043A%u043E%u0432%u044B%u043C%u0438%20%u0430%u0434%u0440%u0435%u0441%u0430%u043C%u0438%20....%20%20%0Afunction%20setBookFavicon%28siteURI%2C%20faviconURI%29%20%7B%0A%20%20%20var%20iconURI%20%3D%20Services.io.newURI%28faviconURI%2C%20null%2C%20null%29%3B%0A%20%20%20var%20bookmarkURI%20%3D%20Services.io.newURI%28siteURI%2C%20null%2C%20null%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20PlacesUtils.favicons.setAndFetchFaviconForPage%28%0A%20%20%20%20%20%20bookmarkURI%2C%0A%20%20%20%20%20%20iconURI%2C%0A%20%20%20%20%20%20false%2C%0A%20%20%20%20%20%20this.FAVICON_LOAD_NON_PRIVATE%2C%0A%20%20%20%20%20%20null%2C%0A%20%20%20%20%20%20Services.scriptSecurityManager.getSystemPrincipal%28%29%0A%20%20%20%29%0A%7D%3B%0A%20%20%20%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0438%20%u0438%20%u0437%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u0443%20%u0438%u043A%u043E%u043D%u043A%u0438%20....%20%0Afunction%20getSiteFavicon%28siteURI%29%20%7B%0A%20%20%20var%20hostURI%20%3D%20%22http%3A//%22%20+%20siteURI.split%28/%5C/+/g%29%5B1%5D%20+%20%22/%22%3B%0A%20%20%20var%20faviconURI%20%3D%20hostURI%20+%20%22favicon.ico%22%3B%20%20//%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u043A%u043E%u043D%u043A%u0438%2C%20%u0435%u0441%u043B%u0438%20%u043D%u0435%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0438%u0437%20%u0441%u0430%u0439%u0442%u0430%0A%20%20%20%20%20%20%0A%20%20%20//%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0438%u0437%20%u0434%u043E%u043A%u0443%u043C%u0435%u043D%u0442%u0430%20%u0441%u0430%u0439%u0442%u0430%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0438%0A%20%20%20var%20xhr%20%3D%20new%20XMLHttpRequest%28%29%3B%0A%20%20%20xhr.open%28%22GET%22%2C%20siteURI%2C%20true%29%3B%0A%20%20%20xhr.responseType%20%3D%20%22document%22%3B%20%20%20%20%20%20%0A%20%20%20xhr.onload%20%3D%20xhr.onerror%20%3D%28%29%3D%3E%20%7B%0A%20%20%20%20%20%20var%20doc%20%3D%20xhr.responseXML%3B%0A%20%20%20%20%20%20if%20%28%20doc%20%21%3D%3D%20null%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20var%20links%20%3D%20doc.getElementsByTagName%28%22link%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%5B...links%5D.forEach%28link%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20/%28%3F%3A%5E%7C%5Cs%29icon%28%3F%3A%5Cs%7C%24%29/.test%28link.rel.toLowerCase%28%29%29%20%29%20faviconURI%20%3D%20link.href%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20setBookFavicon%28siteURI%2C%20faviconURI%29%3B%20%20//%20%u0437%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u0443%20%u0438%u043A%u043E%u043D%u043A%u0438%20%20%20%0A%20%20%20%7D%0A%20%20%20xhr.send%28%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%20%20%3Cattributes/%3E%0A%3C/custombutton%3E |
Grigoriy43 > 23-01-2015 15:37:28 |
Добрый день, спасибо за ответ. |
difabor > 23-01-2015 22:14:56 |
Только убедитесь, что Вы создали файл userchrome.css а не userchrome.css.txt |
difabor > 22-12-2015 05:52:02 |
Уважаемый bunda1, Выделить код Код:var hostURI = "http://" + siteURI.split(/\/+/g)[1] + "/"; var faviconURI = hostURI + "favicon.ico"; // адрес иконки, если не получить адрес иконки из сайта то есть, если адрес иконки сайта получить не удаётся, то предполагается, что он: http://" + siteURI.split(/\/+/g)[1] + "/favicon.ico"; |
bunda1 > 23-12-2015 14:10:46 |
difabor Выделить код Код:var hostURI = "http://" + siteURI.split(/\/+/g)[1] + "/"; var faviconURI = hostURI + "favicon.ico"; // адрес иконки, если не получить адрес иконки из сайта Ну это не серёзно, сработает только если угадать адрес фавиконки, на случай если сервер на котором сайт не отвечает.
Выделить код Код:var siteURI = "http://translit.net/keyboard/"; var favURI = "http://" + siteURI.split(/\/+/g)[1] + "/favicon.ico" var xhr = new XMLHttpRequest(); xhr.open("GET", siteURI, true); xhr.responseType = "document"; xhr.onload = xhr.onerror = function() { var doc = xhr.responseXML; if ( doc !== null ) { var links = doc.getElementsByTagName("link"); [...links].forEach(function(link) { if ( /(?:^|\s)icon(?:\s|$)/.test(link.rel.toLowerCase()) ) faviconURI = link.href }); } alert(faviconURI == favURI); } xhr.send(); Но наверно это не то что ты хотел узнать. |
difabor > 23-12-2015 20:04:42 |
Спасибо, bunda1, я попробую поиграться. Если что-то получится - расскажу |
bunda1 > 23-12-2015 20:10:31 |
difabor пишет
А что должно получится? |
difabor > 23-12-2015 21:17:09 |
Если Вы помните, в своё время я с Вашей помощью написал кнопку [CB] Показывать иконки сайтов, у которых их нет, в табах и адр. строке |
bunda1 > 23-12-2015 21:43:15 |
difabor пишет
Ты хочешь добавить к закладкам без иконок сайта свои иконки, я правильно понял? |
difabor > 23-12-2015 22:24:30 |
bunda1 пишет
Да, которые в "Справке". |
difabor > 27-12-2015 21:52:49 |
Уважаемый bunda1, на Выделить код Код:: (child.uri.startsWith("http") || child.uri.startsWith("chrome")) && child.icon == '' && getSiteFavicon( child.uri ); или Выделить код Код:: (child.uri.startsWith("http") || child.uri.startsWith("about")) && child.icon == '' && getSiteFavicon( child.uri ); не помогла |
bunda1 > 27-12-2015 23:52:29 |
Ну если так: |
difabor > 28-12-2015 01:41:03 |
Не помогает, увы |
Stkvsky > 13-05-2016 19:12:24 |
Помогите пожалуйста если можно сделать такой же пункт (Восстановить иконки закладок) в контекстном меню папок и подпапок на панели закладок который будет обновлять иконки только в данной папке. Когда очень много закладок запускать процесс ради пары иконок очень ощутимо сказывается на работе браузера. |
bunda1 > 13-05-2016 21:40:26 |
Stakhovsky пишет
Иконки не должны сами пропадать, похоже у тебя какой то глюк. |
Stkvsky > 13-05-2016 21:53:36 |
bunda1 13-05-2016 22:07:05 |
bunda1 > 17-05-2016 19:43:43 |
Stakhovsky пишет
Выделить код Код:// Добавить новый пункт "Восстановить иконки закладок" в меню папок закладок, от 16.05.2016. ..................... (function() { var menuitem = document.createElement("menuitem"); menuitem.setAttribute("id", "placesContext_restoreIcons"); menuitem.setAttribute("label", "Восстановить иконки всех закладок"); menuitem.setAttribute("selection", "folder"); menuitem.setAttribute("closemenu", "single"); menuitem.setAttribute("oncommand", "this.run(document)"); menuitem.run = function(doc) { var node = PlacesUIUtils.getViewForNode(doc.popupNode).selectedNode; var folderId = node.folderItemId ? node.folderItemId : node.itemId; var contents = PlacesUtils.getFolderContents(folderId, false, false).root; // перебрать все http(s) закладки for ( i = 0; i < contents.childCount; ++i ) { var item = node.getChild(i); item.uri.startsWith("http") && getSiteFavicon(item.uri); } }; // Добавить иконки к закладкам с одинаковыми адресами .... function setBookFavicon(faviconURI, siteURI) {LOG(siteURI + "\n" +faviconURI); var iconURI = Services.io.newURI(faviconURI, null, null); var bookmarkURI = Services.io.newURI(siteURI, null, null); var faviconService = Cc["@mozilla.org/browser/favicon-service;1"].getService(Ci.mozIAsyncFavicons); faviconService.setAndFetchFaviconForPage( bookmarkURI, iconURI, false, faviconService.FAVICON_LOAD_NON_PRIVATE ) }; // Получить адрес иконки закладки и запустить установку иконки .... function getSiteFavicon(siteURI) { var hostURI = "http://" + siteURI.split(/\/+/g)[1] + "/"; var faviconURI = hostURI + "favicon.ico"; // адрес иконки, если не получить адрес иконки из сайта if ( getSiteFavicon[siteURI] ) return; // стоп если закладка с таким адресом уже была getSiteFavicon[siteURI] = true; // получить адрес иконки из документа сайта закладки var xhr = new XMLHttpRequest(); xhr.open("GET", siteURI, true); xhr.responseType = "document"; xhr.onload = xhr.onerror = function() { var doc = xhr.responseXML; if ( doc !== null ) { var links = doc.getElementsByTagName("link"); [...links].forEach(function(link) { if ( /(?:^|\s)icon(?:\s|$)/.test(link.rel.toLowerCase()) ) faviconURI = link.href }); } setBookFavicon(faviconURI, siteURI); // запустить установку иконки } xhr.send(); }; // Добавить новый пункт во все меню папок закладок .... function handlePopup(e) { var node = e.target; if ( node.id !== 'placesContext' ) return; var sortByName = node.getElementsByAttribute("id", "placesContext_sortBy:name")[0]; setTimeout(()=> { menuitem.setAttribute("disabled", sortByName.disabled) }, 50); if ( node.getElementsByAttribute("id", "placesContext_deleteDuplicates")[0] ) return; node.insertBefore(menuitem, sortByName); }; addEventListener("popupshowing", handlePopup, true, window); addDestructor(()=> menuitem.parentNode && menuitem.parentNode.removeChild(menuitem) ); })(); |
Stkvsky > 18-05-2016 11:46:03 |
bunda1 |
brom113 > 26-05-2016 12:23:21 |
bunda1, Спасибо Вам за труд, это то, что надо!! Только есть небольшой нюансик, если этот код вставить в кнопку ниже кода: «Добавить новый пункт "Удалить дубликаты закладок" в меню папок закладок» (если он присутствует в кнопке), то тогда код "Восстановить иконки закладок" в меню папок закладок» не работает и в меню папок закладок ничего не появляется. P.S. |
bunda1 > 26-05-2016 20:51:11 |
brom113 пишет
Спасибо. Надо будет исправить. |
citehala > 30-06-2016 14:40:45 |
Ребята, всем спасибо, сделал кнопку. Как выглядит Код кнопки Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0414%u043E%u0431%u0430%u0432%u043B%u044F%u0435%u0442%20%u043F%u0443%u043D%u043A%u0442%20%22%u0412%u043E%u0441%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0432%20%u044D%u0442%u043E%u0439%20%u043F%u0430%u043F%u043A%u0435%22%20%u0432%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u0430%u043F%u043A%u0438%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u043D%u043E%u0432%u044B%u0439%20%u043F%u0443%u043D%u043A%u0442%20%22%u0412%u043E%u0441%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%22%20%u0432%20%u043C%u0435%u043D%u044E%20%u043F%u0430%u043F%u043E%u043A%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%2C%20%u043E%u0442%2016.05.2016.%20.....................%0A%28function%28%29%20%7B%0A%20%20%20var%20menuitem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20menuitem.setAttribute%28%22id%22%2C%20%22placesContext_restoreIcons%22%29%3B%0A%20%20%20menuitem.setAttribute%28%22label%22%2C%20%22%u0412%u043E%u0441%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0432%20%u044D%u0442%u043E%u0439%20%u043F%u0430%u043F%u043A%u0435%22%29%3B%0A%20%20%20menuitem.setAttribute%28%22selection%22%2C%20%22folder%22%29%3B%0A%20%20%20menuitem.setAttribute%28%22closemenu%22%2C%20%22single%22%29%3B%20%20%20%0A%20%20%0A%20%20%20menuitem.setAttribute%28%22oncommand%22%2C%20%22this.run%28document%29%22%29%3B%20%0A%20%20%20menuitem.run%20%3D%20function%28doc%29%20%7B%0A%20%20%20%20%20%20var%20node%20%3D%20PlacesUIUtils.getViewForNode%28doc.popupNode%29.selectedNode%3B%0A%20%20%20%20%20%20var%20folderId%20%3D%20node.folderItemId%20%3F%20node.folderItemId%20%3A%20node.itemId%3B%0A%20%20%20%20%20%20var%20contents%20%3D%20PlacesUtils.getFolderContents%28folderId%2C%20false%2C%20false%29.root%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20//%20%u043F%u0435%u0440%u0435%u0431%u0440%u0430%u0442%u044C%20%u0432%u0441%u0435%20http%28s%29%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0438%0A%20%20%20%20%20%20for%20%28%20i%20%3D%200%3B%20i%20%3C%20contents.childCount%3B%20++i%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20item%20%3D%20node.getChild%28i%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20item.uri.startsWith%28%22http%22%29%20%26%26%20getSiteFavicon%28item.uri%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%0A%20%20%20%7D%3B%0A%0A%20%20%20//%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u043A%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0430%u043C%20%u0441%20%u043E%u0434%u0438%u043D%u0430%u043A%u043E%u0432%u044B%u043C%u0438%20%u0430%u0434%u0440%u0435%u0441%u0430%u043C%u0438%20....%20%20%0A%20%20%20function%20setBookFavicon%28faviconURI%2C%20siteURI%29%20%7BLOG%28siteURI%20+%20%22%5Cn%22%20+faviconURI%29%3B%0A%20%20%20%20%20%20var%20iconURI%20%3D%20Services.io.newURI%28faviconURI%2C%20null%2C%20null%29%3B%0A%20%20%20%20%20%20var%20bookmarkURI%20%3D%20Services.io.newURI%28siteURI%2C%20null%2C%20null%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20faviconService%20%3D%20Cc%5B%22@mozilla.org/browser/favicon-service%3B1%22%5D.getService%28Ci.mozIAsyncFavicons%29%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20faviconService.setAndFetchFaviconForPage%28%0A%20%20%20%20%20%20%20%20%20bookmarkURI%2C%0A%20%20%20%20%20%20%20%20%20iconURI%2C%0A%20%20%20%20%20%20%20%20%20false%2C%0A%20%20%20%20%20%20%20%20%20faviconService.FAVICON_LOAD_NON_PRIVATE%0A%20%20%20%20%20%20%29%0A%20%20%20%7D%3B%0A%20%20%20%0A%20%20%20//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0438%20%u0438%20%u0437%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u0443%20%u0438%u043A%u043E%u043D%u043A%u0438%20....%20%0A%20%20%20function%20getSiteFavicon%28siteURI%29%20%7B%0A%20%20%20%20%20%20var%20hostURI%20%3D%20%22http%3A//%22%20+%20siteURI.split%28/%5C/+/g%29%5B1%5D%20+%20%22/%22%3B%0A%20%20%20%20%20%20var%20faviconURI%20%3D%20hostURI%20+%20%22favicon.ico%22%3B%20%20//%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u043A%u043E%u043D%u043A%u0438%2C%20%u0435%u0441%u043B%u0438%20%u043D%u0435%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0438%u0437%20%u0441%u0430%u0439%u0442%u0430%0A%0A%20%20%20%20%20%20if%20%28%20getSiteFavicon%5BsiteURI%5D%20%29%20return%3B%20%20%20%20%20//%20%u0441%u0442%u043E%u043F%20%u0435%u0441%u043B%u0438%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0430%20%u0441%20%u0442%u0430%u043A%u0438%u043C%20%u0430%u0434%u0440%u0435%u0441%u043E%u043C%20%u0443%u0436%u0435%20%u0431%u044B%u043B%u0430%0A%20%20%20%20%20%20getSiteFavicon%5BsiteURI%5D%20%3D%20true%3B%20%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20//%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0438%u0437%20%u0434%u043E%u043A%u0443%u043C%u0435%u043D%u0442%u0430%20%u0441%u0430%u0439%u0442%u0430%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0438%0A%20%20%20%20%20%20var%20xhr%20%3D%20new%20XMLHttpRequest%28%29%3B%0A%20%20%20%20%20%20xhr.open%28%22GET%22%2C%20siteURI%2C%20true%29%3B%0A%20%20%20%20%20%20xhr.responseType%20%3D%20%22document%22%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20xhr.onload%20%3D%20xhr.onerror%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20var%20doc%20%3D%20xhr.responseXML%3B%0A%20%20%20%20%20%20%20%20%20if%20%28%20doc%20%21%3D%3D%20null%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20links%20%3D%20doc.getElementsByTagName%28%22link%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B...links%5D.forEach%28function%28link%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20/%28%3F%3A%5E%7C%5Cs%29icon%28%3F%3A%5Cs%7C%24%29/.test%28link.rel.toLowerCase%28%29%29%20%29%20faviconURI%20%3D%20link.href%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20setBookFavicon%28faviconURI%2C%20siteURI%29%3B%20%20//%20%u0437%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u0443%20%u0438%u043A%u043E%u043D%u043A%u0438%20%20%20%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20xhr.send%28%29%3B%0A%20%20%20%7D%3B%0A%20%20%20%0A%20%20%20//%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u043D%u043E%u0432%u044B%u0439%20%u043F%u0443%u043D%u043A%u0442%20%u0432%u043E%20%u0432%u0441%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u0430%u043F%u043E%u043A%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%20....%0A%20%20%20function%20handlePopup%28e%29%20%7B%20%20%20%20%20%0A%20%20%20%20%20%20var%20node%20%3D%20e.target%3B%0A%20%20%20%20%20%20if%20%28%20node.id%20%21%3D%3D%20%27placesContext%27%20%29%20return%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20sortByName%20%3D%20node.getElementsByAttribute%28%22id%22%2C%20%22placesContext_sortBy%3Aname%22%29%5B0%5D%3B%20%20%20%20%0A%20%20%20%20%20%20setTimeout%28%28%29%3D%3E%20%7B%20menuitem.setAttribute%28%22disabled%22%2C%20sortByName.disabled%29%20%7D%2C%2050%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20if%20%28%20node.getElementsByAttribute%28%22id%22%2C%20%22placesContext_deleteDuplicates%22%29%5B0%5D%20%29%20return%3B%20%20%20%0A%20%20%20%20%20%20node.insertBefore%28menuitem%2C%20sortByName%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%7D%3B%20%20%20%20%20%0A%20%20%20addEventListener%28%22popupshowing%22%2C%20handlePopup%2C%20true%2C%20window%29%3B%0A%20%20%20addDestructor%28%28%29%3D%3E%20menuitem.parentNode%20%26%26%20menuitem.parentNode.removeChild%28menuitem%29%20%29%3B%0A%0A%7D%29%28%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%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%20%20%3Cattributes/%3E%0A%3C/custombutton%3E |
_zt > 07-08-2016 13:57:27 |
citehala |
difabor > 08-08-2016 04:11:14 |
citehala, а нельзя ли добавить в эту кнопку возможность восстановления всех иконок по левому клику на саму кнопку? |
bunda1 > 08-08-2016 20:21:23 |
difabor пишет
Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0412%u043E%u0441%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0432%u0441%u0435%u0445%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAEAAAAA9CAYAAAAd1W/BAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuOWwzfk4AAAu6SURBVGhD5VsJdBPXFR3ZEt4lr/K+yTsGg232gKEJEEJJD1ASErBGwnZsdmPMYowXbDAQ9iXhNKVt2nQJaUvTE1oOBXvGhrBvZQlgY2NjMEubtCdpUyBt+vr+aEYaSSNbBkupnXvOPaMzM//99+78+f/N/1/UNwYdU0zp2E8pmumgtHVa/uy3BHRdFgb/XyTwfEJls/H81W8BaKZOFLyBNPMuf7WPQ8uOtgqeE4D9ippzRMPf1YdBM4eFoJWLzoF7/gmREMxe/q4+Cu2RkaZgWdCsaYGIVdfFAjyhZtVF83f3QeiYg0KwyoVnIWX9HUhe3w5u+cdFIrA/4O/uY9AfGYrBGXt+zZpmToAUFCBc3Apo9jGlb4jkS/Uh0MxHQpA+C85A/w0keIMASTUWrYCue5sv1Uegr80wBofUVDabCZCMAoSVXBMJwDyicg6H8aX7AGjmQyE4nwWnIRWDtxQgaV079HvDrBXs5Ev3cmTXDcLOz/TuV96UFgAZutKsFfwLjyG8lV4MHfMbISjv+adhwMY7NgVIXHcbW8HHJhF07FbeSi9FNjsAe/WvhYDI0+9cgHYIWfmJSQCa+ZLKPq7mrfVC0Ow+IRiveadg4Jt3uxQgYa1FK6CZTby1XgZtfYrZ069osluA4BVmreAf1OtsIG+1F4FmfyEE4TXvJKRh8PYKEF99GxR54r6gfj1vtZdAezQRHf+PEEAsPn1LAVLWtUJi2WVIKL0AiRXXuQ7QKABpBctFrUDHfk7lHvLnrQtwQaYZfv6/4JVfu3IJjI75QHDecy4+/U13IbW6ESJn7QHfjBnQLygOZK79AEsY6eKhAo+Y4eA/rhAi5/0RU+VWi1bA7kCGcHVQlAr5IXIX8hsAeSd17AhMVmgMdi3+xs6OucD12iaHOUYtPQlBY+eCi7uPWcBd0S08DVRTd5I+wMwe9b2fPKK8Qx9z94UNPYevWh6eH0fNZiOoSiCtokcgo2YfVGJHlk5pmZlYSRk68h7yJPJvZg7ZIjquyCrBwJWSAdpLWWgGUNN/abA5rhoohafpevI0yzof4YO4gkfMPJnNeG4upWXH4zGGyn9HgWVsQN8wCm9ajoX24rEeA36ARsRzdt2iXF8L8vgJZoE8E/t5gSxxsvV5SwE6JfME2Yg8gLFtxxhnGFoMzZRKF+icirxjXF4fVHQBIkquQlxFI/THji2tpgm8NSOsnXUAFWkzwWPuaa6vkOnrJf3snMw2kqpKNmmZnoV+GKQSgwwuvgjRpVchqaoJBm1sg2HbOmDEjvswfPt9GIYcuu0ex8xN7aBMfl7SWTFdvQPBJ2Ui+I/KhYCx80E15HVwjxgMlItc8n5b9BpKQ3j5LQgruwWhq1tAXdIE/sXXQFl4CTwXnAe3glMg58RpsIqPI818QcbrNvHJ2NWfQObmdhi96z5kvfUQxux+CKORz+16wHHUzgcwcud9SQFCJxRJOirQM3Y4ROf8HPrXtEnmAZqSCxDwQrHd/Ya5ALcgBEUILjVQvaoZgpCBJc0QsLIZ/JY3gseCC5YC3MAWUDsVf/xbOEme+tAtd2Ds2w+7JUBq8WF8gq6SjsrkbhA+fSOXA3SVCMVX3QLlkFmSdizZHQGURVctX5N/Uvr6MWgHoa+bjiewkzBcJO935ubb3RJAmTBG0kmZ3B00+fvsygTjSrHpxmdJ2pGivQJYBU+zX+DoNhZtiKBlp2BLeGwUIfcoZLx52y4BUpYclHSQMHLmThiEiVBXAkQvPAQKvyhJG7ZojwAST/5z7Peew/ISoBsmojrGZEaecxQGY6fXlQBBI7WSDipTxmPwHV0KEPbqbpApPCRtdMauBFAVXbF48szfqWxmOJbtBCSr0uEXGF/INacB0ja02hRg6NYOkPsESTqYuORQlwIkll+BwPHLwDt1MigCYoCSuUjakmJnApDg8R0XB/8ZxpWJ5ewAaSI6BpsKL8KcBhhQ0yIpQFrpcUnnPMJSYfBmEnzXLUDcCcaVXYPwN/ZD4JR1XGfoFpEOsn6i7E9EWwJwwQuBG4L/Cx4HY5lugK4dhiIYcwSXOfXQf22zlQDxc34s6Zw6q+CpBBC+BuPwkziuug00VW0QU9kC4QsZCJyxG5Sj54N7/Dhw9QkB72F6KwFUSy5bBI9ZLZmZeioQ1Wjmr4IxF2xSydU3zQSImrZOUoDIV7b0mACxRIQ1bRBd2QpRyMgKA8NLG80EsApex9zjJmaeCdy8HvNAMEo6lcQ1TUYBIqeUSQoQo33H4QJEYPCCAKoll8yDp5k7lPZIIvrSA8j5OAmN3hWMExHiKxsNLWBqlaQA0a/tdJoA1sFjdjvnWA8vtdN1cWjcmDaTbwVN+Q2I0+6RFCBkwlKnCKBa8mfL4FuoHEetMBPDOrZZXGFo7n5JAbzjRjlcAFXhRYvgmSYqj43A+h0IujYcK7thrDT7MCYxEsMUfhf0X322RwQI0f8KwuYdgqiKFqMAqkLLJ89cd956Ipmb07FXhcplMeOsBUAGjKSfWYCoZWcwD/Di7Ll4+IJH0gTwnbAaZC//kATNC8BcoXJrg/EeJ0JXqxcE8PjuVqvgOWJWFzf3d08tgKaqFbxSJknalvnFigSofQ3PORlkxYYXQF10HtyDEyQdlXsHQtIyTKefQgC/sQslbRK6PV/OB4+k2So852ToWON2l5jV1yEh7z1JRwldvfwhNu99uwXQVDR2OiegUCeDb6FocoNm9+N5p0KGLaBDcCBlbQs3J+CfMV3SYYG+6dMhvqjWpgDxa25C8Pe3g7yzz2IXBahzfw/qleLNVWwjXnMiZh3zw46HmzUm+UDmlrucAOk1TeARkiztuIhuwUngO2w2BE1cCerJ5RAwbhF493/Rrqkwv5equFEgvKzFJIBhRssdrzsJos2OZCWXBE84ZOs9GFhxHtwCsYOScP5ZqcpabJYHuOYcNYlg96duT4AsOPAVqxadMRMgkxPhInhGZUgG8VR0kYP/pEqrRMi94JRJAC2jw3udBJp9S6g4dPklKwEytuDYv6EV1N9Z0O2pbksqAjSYbf5WMhP0WXTeJABZCXIadEyDUDH5HpASIB3TYJIKJxXXg++gl23OGNuiqzIUAl6qgNjyJpupsP9S0ecvXXcIyzkFZAQwTpSk1rR2KoCQCaaUnoXQKRXgnZAFrpjRoR1zYktRBMZxw19o9rugqWwxpsK2BFCvvGESgHytOgWGbwGuUhlyyNYOuwQQEqHUDe0Qgq+N66wDQE39GVntBZdXP4DAwnOYALVJfgvYEsBsJCCj0qw/+PFeOhBk5piv1D3/uNnKUGcCDMQEKGLVNW7NweS0OeW5R0G97AoXuD0CkM9hea5oD4FxocORMPzVhavQb/E5OwS4C9FlNyw3RBtIM/fxaLY0R0gWO8kOERJ8VwJ4zDstssfO4710IMg/O/gKw1dc7lSAuEpMjOaK/w9gdPQzPJZQ+R95UpMOuqHNQjxnnHYTSHaOBq+4BrEYvC0BfBaL1/uYPbyXDoSOOStUGI85u5QAidXN4D1fNEYLJEtSNLsOf/vy1kzI/pMXClGK9q1Wq93yT0AIpr5SAvgXXxXZZ47y1hyESlaOlTwSKkzb0GYmANkfoFp4xuSQQFJGW7cDg1TzlmyDiKNja7CMcXFGoHvBSQgpuWEmQHBJo/ieT3FAkfGWHADyzy6+MjJFPmz7PU4AIoQ/9uIiRwzkcnRmL6U/1P39/2SHKNkwLVqvFEje+5BVjZwAYTgSWKz9OXB/MV07zehEwQlI39QO6qUXLR0ggX+NfL9HpqW1R6LwtfkR8iuzOpCe889A8Kom7DRFHayeeZEv6QBo68qFisiQRVqBsWKOOBbTzAFuh3hPQ1+fwIkq2n1KSMR3mSPaAUKzy/gSDoCO/amxIisyDKWtH8nf6TgQcYnIoi34ZqRZB/7bRMestq6UOc1tRXM2iNhEdEt/aKaAv8MB4IYqdh9W8iVWTobDqXjWgb2uHdAxL6BPdXi8jcct/E5SO0FR/wO9echUrn7jHAAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u043D%u043E%u0432%u044B%u0439%20%u043F%u0443%u043D%u043A%u0442%20%22%u0412%u043E%u0441%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0432%u0441%u0435%u0445%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%22%20%u0432%20%u043C%u0435%u043D%u044E%20%22%u0417%u0430%u043A%u043B%u0430%u0434%u043A%u0438%22%2C%20%u043E%u0442%2002.08.2014.%20................................%0A%28function%28%29%20%7B%0A%20%20%20self._handleClick%20%3D%28%29%3D%3E%20chooseBookmarks%281%29%3B%0A%0A%0A%20%20%20//%20%u041F%u0435%u0440%u0435%u0431%u0440%u0430%u0442%u044C%20%u0432%u0441%u0435%20http%28s%29%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0438%20....%20%0A%20%20%20function%20chooseBookmarks%28%20id%20%29%20%7B%0A%20%20%20%20%20%20var%20folder%20%3D%20PlacesUtils.getFolderContents%28%20id%20%29.root%3B%0A%20%20%20%0A%20%20%20%20%20%20folder.QueryInterface%28Ci.nsINavHistoryContainerResultNode%29%3B%0A%20%20%20%20%20%20folder.containerOpen%20%3D%20true%3B%0A%0A%20%20%20%20%20%20for%20%28%20var%20i%20%3D%200%3B%20i%20%3C%20folder.childCount%3B%20i++%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20child%20%3D%20folder.getChild%28i%29%3B%0A%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20PlacesUtils.nodeIsFolder%28%20child%20%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%3F%20chooseBookmarks%28%20child.itemId%20%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%3A%20child.uri.startsWith%28%22http%22%29%20%26%26%20child.icon%20%3D%3D%20%27%27%20%26%26%20getSiteFavicon%28%20child.uri%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20folder.containerOpen%20%3D%20false%3B%0A%20%20%20%7D%3B%0A%0A%0A%20%20%20//%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u043A%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0430%u043C%20%u0441%20%u043E%u0434%u0438%u043D%u0430%u043A%u043E%u0432%u044B%u043C%u0438%20%u0430%u0434%u0440%u0435%u0441%u0430%u043C%u0438%20....%20%20%0A%20%20%20function%20setBookFavicon%28%20faviconURI%2C%20siteURI%20%29%20%7B%0A%20%20%20%20%20%20var%20iconURI%20%3D%20Services.io.newURI%28%20faviconURI%2C%20null%2C%20null%29%3B%0A%20%20%20%20%20%20var%20bookmarkURI%20%3D%20Services.io.newURI%28%20siteURI%2C%20null%2C%20null%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20faviconService%20%3D%20Cc%5B%22@mozilla.org/browser/favicon-service%3B1%22%5D.getService%28Ci.mozIAsyncFavicons%29%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20faviconService.setAndFetchFaviconForPage%28%0A%20%20%20%20%20%20%20%20%20bookmarkURI%2C%0A%20%20%20%20%20%20%20%20%20iconURI%2C%0A%20%20%20%20%20%20%20%20%20false%2C%0A%20%20%20%20%20%20%20%20%20faviconService.FAVICON_LOAD_NON_PRIVATE%0A%20%20%20%20%20%20%29%0A%20%20%20%7D%3B%0A%20%20%20%0A%20%20%20%0A%20%20%20//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0438%20%u0438%20%u0437%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u0443%20%u0438%u043A%u043E%u043D%u043A%u0438%20....%20%0A%20%20%20function%20getSiteFavicon%28%20siteURI%20%29%20%7B%0A%20%20%20%20%20%20var%20hostURI%20%3D%20%22http%3A//%22%20+%20siteURI.split%28/%5C/+/g%29%5B1%5D%20+%20%22/%22%3B%0A%20%20%20%20%20%20var%20faviconURI%20%3D%20hostURI%20+%20%22favicon.ico%22%3B%20%20//%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u043A%u043E%u043D%u043A%u0438%2C%20%u0435%u0441%u043B%u0438%20%u043D%u0435%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0438%u0437%20%u0441%u0430%u0439%u0442%u0430%0A%0A%20%20%20%20%20%20if%20%28%20getSiteFavicon%5BsiteURI%5D%20%29%20return%3B%20%20%20%20%20//%20%u0441%u0442%u043E%u043F%20%u0435%u0441%u043B%u0438%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0430%20%u0441%20%u0442%u0430%u043A%u0438%u043C%20%u0430%u0434%u0440%u0435%u0441%u043E%u043C%20%u0443%u0436%u0435%20%u0431%u044B%u043B%u0430%0A%20%20%20%20%20%20getSiteFavicon%5BsiteURI%5D%20%3D%20true%3B%20%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20//%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0438%u0437%20%u0434%u043E%u043A%u0443%u043C%u0435%u043D%u0442%u0430%20%u0441%u0430%u0439%u0442%u0430%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0438%0A%20%20%20%20%20%20var%20xhr%20%3D%20new%20XMLHttpRequest%28%29%3B%0A%20%20%20%20%20%20xhr.open%28%22GET%22%2C%20siteURI%2C%20true%29%3B%0A%20%20%20%20%20%20xhr.responseType%20%3D%20%22document%22%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20xhr.onload%20%3D%20xhr.onerror%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20var%20doc%20%3D%20xhr.responseXML%3B%0A%20%20%20%20%20%20%20%20%20if%20%28%20doc%20%21%3D%3D%20null%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20links%20%3D%20doc.getElementsByTagName%28%22link%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B...links%5D.forEach%28function%28link%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20/%28%3F%3A%5E%7C%5Cs%29icon%28%3F%3A%5Cs%7C%24%29/.test%28link.rel.toLowerCase%28%29%29%20%29%20faviconURI%20%3D%20link.href%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20setBookFavicon%28%20faviconURI%2C%20siteURI%20%29%3B%20%20//%20%u0437%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u0443%20%u0438%u043A%u043E%u043D%u043A%u0438%20%20%20%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20xhr.send%28%29%3B%0A%20%20%20%7D%3B%20%20%20%0A%20%20%20%20%20%0A%7D%29%28%29%3B%0A%0A%0A//%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u043D%u043E%u0432%u044B%u0439%20%u043F%u0443%u043D%u043A%u0442%20%22%u0412%u043E%u0441%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%22%20%u0432%20%u043C%u0435%u043D%u044E%20%u043F%u0430%u043F%u043E%u043A%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%2C%20%u043E%u0442%2016.05.2016.%20.....................%0A%28function%28%29%20%7B%0A%20%20%20var%20menuitem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20menuitem.setAttribute%28%22id%22%2C%20%22placesContext_restoreIcons%22%29%3B%0A%20%20%20menuitem.setAttribute%28%22label%22%2C%20%22%u0412%u043E%u0441%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0432%u0441%u0435%u0445%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%22%29%3B%0A%20%20%20menuitem.setAttribute%28%22selection%22%2C%20%22folder%22%29%3B%0A%20%20%20menuitem.setAttribute%28%22closemenu%22%2C%20%22single%22%29%3B%20%20%20%0A%20%20%0A%20%20%20menuitem.setAttribute%28%22oncommand%22%2C%20%22this.run%28document%29%22%29%3B%20%0A%20%20%20menuitem.run%20%3D%20function%28doc%29%20%7B%0A%20%20%20%20%20%20var%20node%20%3D%20PlacesUIUtils.getViewForNode%28doc.popupNode%29.selectedNode%3B%0A%20%20%20%20%20%20var%20folderId%20%3D%20node.folderItemId%20%3F%20node.folderItemId%20%3A%20node.itemId%3B%0A%20%20%20%20%20%20var%20contents%20%3D%20PlacesUtils.getFolderContents%28folderId%2C%20false%2C%20false%29.root%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20//%20%u043F%u0435%u0440%u0435%u0431%u0440%u0430%u0442%u044C%20%u0432%u0441%u0435%20http%28s%29%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0438%0A%20%20%20%20%20%20for%20%28%20i%20%3D%200%3B%20i%20%3C%20contents.childCount%3B%20++i%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20item%20%3D%20node.getChild%28i%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20item.uri.startsWith%28%22http%22%29%20%26%26%20getSiteFavicon%28item.uri%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%0A%20%20%20%7D%3B%0A%0A%20%20%20//%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u043A%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0430%u043C%20%u0441%20%u043E%u0434%u0438%u043D%u0430%u043A%u043E%u0432%u044B%u043C%u0438%20%u0430%u0434%u0440%u0435%u0441%u0430%u043C%u0438%20....%20%20%0A%20%20%20function%20setBookFavicon%28faviconURI%2C%20siteURI%29%20%7BLOG%28siteURI%20+%20%22%5Cn%22%20+faviconURI%29%3B%0A%20%20%20%20%20%20var%20iconURI%20%3D%20Services.io.newURI%28faviconURI%2C%20null%2C%20null%29%3B%0A%20%20%20%20%20%20var%20bookmarkURI%20%3D%20Services.io.newURI%28siteURI%2C%20null%2C%20null%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20faviconService%20%3D%20Cc%5B%22@mozilla.org/browser/favicon-service%3B1%22%5D.getService%28Ci.mozIAsyncFavicons%29%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20faviconService.setAndFetchFaviconForPage%28%0A%20%20%20%20%20%20%20%20%20bookmarkURI%2C%0A%20%20%20%20%20%20%20%20%20iconURI%2C%0A%20%20%20%20%20%20%20%20%20false%2C%0A%20%20%20%20%20%20%20%20%20faviconService.FAVICON_LOAD_NON_PRIVATE%0A%20%20%20%20%20%20%29%0A%20%20%20%7D%3B%0A%20%20%20%0A%20%20%20//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0438%20%u0438%20%u0437%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u0443%20%u0438%u043A%u043E%u043D%u043A%u0438%20....%20%0A%20%20%20function%20getSiteFavicon%28siteURI%29%20%7B%0A%20%20%20%20%20%20var%20hostURI%20%3D%20%22http%3A//%22%20+%20siteURI.split%28/%5C/+/g%29%5B1%5D%20+%20%22/%22%3B%0A%20%20%20%20%20%20var%20faviconURI%20%3D%20hostURI%20+%20%22favicon.ico%22%3B%20%20//%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u043A%u043E%u043D%u043A%u0438%2C%20%u0435%u0441%u043B%u0438%20%u043D%u0435%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0438%u0437%20%u0441%u0430%u0439%u0442%u0430%0A%0A%20%20%20%20%20%20if%20%28%20getSiteFavicon%5BsiteURI%5D%20%29%20return%3B%20%20%20%20%20//%20%u0441%u0442%u043E%u043F%20%u0435%u0441%u043B%u0438%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0430%20%u0441%20%u0442%u0430%u043A%u0438%u043C%20%u0430%u0434%u0440%u0435%u0441%u043E%u043C%20%u0443%u0436%u0435%20%u0431%u044B%u043B%u0430%0A%20%20%20%20%20%20getSiteFavicon%5BsiteURI%5D%20%3D%20true%3B%20%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20//%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0438%u0437%20%u0434%u043E%u043A%u0443%u043C%u0435%u043D%u0442%u0430%20%u0441%u0430%u0439%u0442%u0430%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0438%0A%20%20%20%20%20%20var%20xhr%20%3D%20new%20XMLHttpRequest%28%29%3B%0A%20%20%20%20%20%20xhr.open%28%22GET%22%2C%20siteURI%2C%20true%29%3B%0A%20%20%20%20%20%20xhr.responseType%20%3D%20%22document%22%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20xhr.onload%20%3D%20xhr.onerror%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20var%20doc%20%3D%20xhr.responseXML%3B%0A%20%20%20%20%20%20%20%20%20if%20%28%20doc%20%21%3D%3D%20null%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20links%20%3D%20doc.getElementsByTagName%28%22link%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B...links%5D.forEach%28function%28link%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20/%28%3F%3A%5E%7C%5Cs%29icon%28%3F%3A%5Cs%7C%24%29/.test%28link.rel.toLowerCase%28%29%29%20%29%20faviconURI%20%3D%20link.href%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20setBookFavicon%28faviconURI%2C%20siteURI%29%3B%20%20//%20%u0437%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u0443%20%u0438%u043A%u043E%u043D%u043A%u0438%20%20%20%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20xhr.send%28%29%3B%0A%20%20%20%7D%3B%0A%20%20%20%0A%20%20%20//%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u043D%u043E%u0432%u044B%u0439%20%u043F%u0443%u043D%u043A%u0442%20%u0432%u043E%20%u0432%u0441%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u0430%u043F%u043E%u043A%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%20....%0A%20%20%20function%20handlePopup%28e%29%20%7B%20%20%20%20%20%0A%20%20%20%20%20%20var%20node%20%3D%20e.target%3B%0A%20%20%20%20%20%20if%20%28%20node.id%20%21%3D%3D%20%27placesContext%27%20%29%20return%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20sortByName%20%3D%20node.getElementsByAttribute%28%22id%22%2C%20%22placesContext_sortBy%3Aname%22%29%5B0%5D%3B%20%20%20%20%0A%20%20%20%20%20%20setTimeout%28%28%29%3D%3E%20%7B%20menuitem.setAttribute%28%22disabled%22%2C%20sortByName.disabled%29%20%7D%2C%2050%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20if%20%28%20node.getElementsByAttribute%28%22id%22%2C%20%22placesContext_deleteDuplicates%22%29%5B0%5D%20%29%20return%3B%20%20%20%0A%20%20%20%20%20%20node.insertBefore%28menuitem%2C%20sortByName%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%7D%3B%20%20%20%20%20%0A%20%20%20addEventListener%28%22popupshowing%22%2C%20handlePopup%2C%20true%2C%20window%29%3B%0A%20%20%20addDestructor%28%28%29%3D%3E%20menuitem.parentNode%20%26%26%20menuitem.parentNode.removeChild%28menuitem%29%20%29%3B%0A%0A%7D%29%28%29%3B%0A%0A%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%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%20%20%3Cattributes/%3E%0A%3C/custombutton%3E |
difabor > 09-08-2016 00:50:03 |
bunda1, спасибо! |
nsv > 08-09-2016 12:36:43 |
Подскажите пожалуйста. Добавляю код из первого сообщения в кнопку в браузере Pale Moon, но пункт в меню не появляется. |
bunda1 > 08-09-2016 17:57:53 |
nsv пишет
Я проверил на последней версии Pale Moon и у меня пункт в меню появляется: Ты что делаешь не правильно, может код не туда положил, надо в положить в вкладку инициализации. |
nsv > 08-09-2016 18:01:56 |
Положил в вкладку инициализации, только у меня тема другая и меню в верхнем углу,а версия портабельная 26.4.0 (Atom/WinXP) |
bunda1 > 08-09-2016 18:41:29 |
nsv пишет
Не понятно в чём тут проблема, может этот вариант подойдёт 08-08-2016 20:21:23 |
_zt > 25-09-2016 14:44:22 |
Должен заметить, что для All-in-One Sidebar из всех работает только эта 30-06-2016 и класть ее надо в URL, и потом сразу заменить иконку. |
mahtanoronra > 30-09-2016 19:50:33 |
блин поставил щас 49 версию и меню и кнопка перестали работать.. иконки не восстанавливает 45 и 38 работают.. |
bunda1 > 03-10-2016 19:44:55 |
Исправил Восстановить иконки всех закладок для совместимости с Firefox 49. |
oleg.sgh > 03-10-2016 19:57:19 |
bunda1 |
Quartz1t > 04-10-2016 21:07:31 |
bunda1 пишет
теперь в pale moon-e перестало работать |
bunda1 > 04-10-2016 21:51:08 |
Quartz1t пишет
|
Quartz1t > 06-10-2016 16:33:26 |
bunda1 пишет
Нет, не работает. Последняя рабочая на РМ от 02.08.2014. |
bunda1 > 06-10-2016 18:50:12 |
Quartz1t пишет
Ну тогда не знаю. У меня работает на Pale Moon 26.5. |
Quartz1t > 07-10-2016 12:45:32 |
bunda1 пишет
тоже полезно знать. спасибо. |
JayK > 14-11-2016 08:19:17 |
скрытый текст bunda1 пишет
К сожалению кнопка для добавления в каждую папку не работает, а общая кнопка не может переварить мои 10 тыщ закладок |
bunda1 > 14-11-2016 21:36:11 |
JayK пишет
Код добавляет в контекстное меню папок закладок пункт Восстановить иконки всех закладо а не кнопку: или ты про что пишешь? |
JayK > 15-11-2016 09:37:36 |
bunda1
В менб пункт есть, но у меня слишком много закладок, не обновляет, в вот вышеописанная фича не работает( |
Quartz1t > 26-11-2016 12:18:22 |
Использую старую версию скрипта от 02.08.2014.... |
bunda1 > 26-11-2016 20:53:47 |
Попробовал код от 02.08.2014. на Рale Мoon 27 и вроде все иконки подгружаются без проблем. А как у тебя проявляется проблема с подгрузкой иконок во всех папках закладок? |
Quartz1t > 28-11-2016 15:08:08 |
bunda1 пишет
Подгрузка иконок работает только по клику на папке и подгружается только в выбранной папке. |
Резидент > 07-03-2017 21:32:38 |
Подскажите пожалуйста, на FF 52 работает обновление favicon на закладках? P.S: Почему разработчики браузера не сделают эту опцию по умолчанию |
Резидент > 09-03-2017 10:34:03 |
Не работает Без иконок сложно ориентироваться |
Mishania > 09-03-2017 11:44:15 |
Может вообще стоит какую-то тему для кнопок работающих на FF52 и выше завести? |
bunda1 > 09-03-2017 22:27:55 |
Резидент пишет
Я проверил на FF 52 и всё работает. Может это поможет: 09-03-2017 22:29:37 Mishania пишет
Может и стоит, но некому этим заниматься. |
Резидент > 10-03-2017 12:06:31 |
bunda1 пишет
"custom_buttons-0.0.5.8.9-fixed3-signed"? Его и устанавливал, создал кнопку, поместил код из первого поста в инициализацию. В меню появился пункт "Восстановить иконки всех закладок", но при использовании функции иконки не появляются Перехожу в ручную по закладе - икона загружается |
bunda1 > 10-03-2017 12:33:01 |
Резидент |
Резидент > 10-03-2017 15:12:37 |
Пересоздал, теперь в меню нет этого пункта bunda1, сделайте пожалуйста видео установки с нуля. Вроде всё просто, но какой-то необъяснимый геморрой Разработчики Мозиллы, что ж вы такие редиски и не сделаете эту функцию штатно? Приходится извращаться костылями и то пока не работает метод |
bunda1 > 15-03-2017 22:34:30 |
Резидент пишет
ПКМ на любой панели и в открывшемся меню нажимаем пункт Добавить новую кнопку, откроется окно редактирования новой кнопки и копируем мой код в вкладку Инициализация. Потом в окне редактирования кнопки нажимаем Ok, открываем настройку панелей инструментов (Customize) и вытаскиваем новую кнопку на нужную панель. |
Mishania > 18-03-2017 15:14:04 |
На последнем ERS так и не заработала. В 45.8.0 работает. Пробовал и новую кнопку создавать и две версии аддона. Сейчас стоит Custom Buttons 0.0.5.8.9.3 |
bunda1 > 21-03-2017 14:52:21 |
Mishania пишет
Я проверил Восстановить иконки всех закладок на двух сборках FF52 и всё работает даже с включеным e10. Даже не знаю в чём проблема. |
Mishania > 21-03-2017 16:16:07 |
bunda1 скрытый текст Вижу у вас UA 24 фаерфокс, есть какая-то причина? Мне что-то очень не нравится развитие браузера, хочется сделать большой даунгрейд, склоняюсь в пользу Firefox PCX v33.1.1, долго на ней сидел и очень нравилось. |
_zt > 23-03-2017 05:24:19 |
bunda1 |
mahtanoronra > 14-05-2017 17:29:07 |
на 53 мозиле кажется кнопка не работает..и даже похоже вызывает не рабочее состояние браузера.. перестают открыватся ссылки обновлятся страници.. |
bunda1 > 17-05-2017 20:44:40 |
mahtanoronra пишет
Не знаю в чём тут дело. Мне код работает на Firefox 53 без проблем. |
mahtanoronra > 17-05-2017 21:16:26 |
bunda1 UP скрытый текст это норм? блин целый день сидел...ждал пока в консоле все отработает..пришлось закрыть...пк надо выключать..в чём проблема то(( |
mahtanoronra > 19-05-2017 12:19:28 |
так.... уже не раз сталкиваюсь с проблемой подобной... |
bunda1 > 19-05-2017 12:44:02 |
mahtanoronra пишет
Нет, это не нормально. Такое может быть только если интернет медленный или комп совсем слабый или другая программа жрёт все ресурсы. У меня довольно шустро обновляется, примерно за пару минут. |
mahtanoronra > 19-05-2017 13:39:48 |
bunda1 пишет
инет норм.100 мб, ресы вроде ни кто не кушает тоже хватает... скрытый текст сейчас опять жду довольно долго.. лог длинный. e10 выключен качал CB fix4 подписаный.ладно надеюсь разберусь... создам новый профель UP скрытый текст в консоле вижу тока эту строчку постоянно..иконки не обновились. до этого на ТЕСТВОМ профеле удалил 2 папки из избранново.. там где то вкладок 1000(без удаления тоже не работало), осталось 700 элементов - минут за 5 обновил,всё ок. видим на чём то подвисает... может есть способ вычислить проблему?может что бы кнопка ошибку показывала где то, при проблеме? UP2 |
NikolayHAOS > 16-06-2017 22:53:00 |
Всем доброго времени суток. скрытый текст |
_zt > 29-06-2017 08:12:33 |
NikolayHAOS скрытый текст // Добавить новый пункт "Восстановить иконки закладок" в меню папок закладок, от 16.05.2016. ..................... (function() { var menuitem = document.createElement("menuitem"); menuitem.setAttribute("id", "placesContext_restoreIcons"); menuitem.setAttribute("label", "Восст.иконки в папке"); menuitem.setAttribute("selection", "folder"); menuitem.setAttribute("closemenu", "single"); menuitem.setAttribute("oncommand", "this.run(document)"); menuitem.run = function(doc) { var node = PlacesUIUtils.getViewForNode(doc.popupNode).selectedNode; var folderId = node.folderItemId ? node.folderItemId : node.itemId; var contents = PlacesUtils.getFolderContents(folderId, false, false).root; // перебрать все http(s) закладки for ( i = 0; i < contents.childCount; ++i ) { var item = node.getChild(i); item.uri.startsWith("http") && getSiteFavicon(item.uri); } }; // Добавить иконки к закладкам с одинаковыми адресами .... if ( getSiteFavicon[siteURI] ) return; // стоп если закладка с таким адресом уже была })(); |
NikolayHAOS > 29-06-2017 13:34:45 |
_zt |
jadayMisha > 12-07-2018 01:58:56 |
bunda1 пишет
на 52.9.0 (64-бит) неработает , или я что то не то делаю ? инициализая , нажимаю на кнопку и ничего непроисходит Или это надо ждать ? 12-07-2018 02:11:30 |
Ristarchik > 30-08-2023 00:33:52 |
Я конечно не люблю лезть куда не следует, но кто нибудь сможет обновить работоспособность кнопки. под современные обновы браузера, есесно. кастомная кнопка версии 0.0.7.0.0.32 |
Евгений2024 > 01-06-2024 09:09:28 |
Здравствуйте , можете помочь с восстановлением иконок в закладках Firefox/115.0 esr |
3.0.1 > 02-06-2024 05:19:00 |
В последнем посте ссылку посмотрите |
Евгений2024 > 03-06-2024 08:13:03 |
3.0.1 пишет
Не обновляет все иконки так и остались серыми да и расширение обновлялось в 20 году |