Полезная информация

Mozilla Россия — свежие версии программ Mozilla, а также масса полезной информации по каждому продукту.

№102-08-2014 13:58:14

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4512
UA: Firefox 24.0

[CB]Восстановить иконки всех закладок

Добавить новый пункт "Восстановить иконки всех закладок" в меню "Закладки"( Firefox 24 + )
Автор: bunda1
Версия: от 04.10.2016.
Описание: Kод добавляет в меню "Закладки" на панели меню новый пункт Восстановить иконки всех закладок который восстанавливает иконки всех закладок у которых нет иконок. Код полезен в случаях если закладок очень много а иконки пропали и вручную их восстанавливать долго.
Использование: положите код в любую Custom Buttons кнопку, в инициализацию. Не обязательно создавать новую CB кнопку, можно использовать уже существующую.

Выделить код

Код:

// Добавить новый пункт "Восстановить иконки всех закладок" в меню "Закладки", от 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 + )
Автор: bunda1
Версия: от 04.10.2016.
Описание: Kнопка восстанавливает иконки всех закладок у которых нет иконок. Код полезен в случаях если закладок очень много а иконки пропали и вручную их восстанавливать долго.

Выделить код

Код:

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%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

Отредактировано bunda1 (02-08-2014 16:08:39)

Отсутствует

 

№223-01-2015 15:37:28

Grigoriy43
Участник
 
Группа: Members
Зарегистрирован: 23-01-2015
Сообщений: 1
UA: Firefox 35.0

Re: [CB]Восстановить иконки всех закладок

Добрый день, спасибо за ответ.
Поясните ещё пожалуйста как добавить / редактировать иконки действующих закладок?
нашёл ответ вот здесь https://forum.mozilla-russia.org/viewtopic.php?pid=659356#p659356
но с кодированием совершенно не знаком. У меня например банально нет этого файла userchrome.css

Отсутствует

 

№323-01-2015 22:14:56

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 383
UA: Firefox 33.0
Веб-сайт

Re: [CB]Восстановить иконки всех закладок

Только убедитесь, что Вы создали файл userchrome.css а не userchrome.css.txt


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№422-12-2015 05:52:02

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 383
UA: Firefox 36.0
Веб-сайт

Re: [CB]Восстановить иконки всех закладок

Уважаемый bunda1,
в Вашем коде есть такой участок:

Выделить код

Код:

var hostURI = "http://" + siteURI.split(/\/+/g)[1] + "/";
      var faviconURI = hostURI + "favicon.ico";  // адрес иконки, если не получить адрес иконки из сайта

то есть, если адрес иконки сайта получить не удаётся, то предполагается, что он: http://" + siteURI.split(/\/+/g)[1] + "/favicon.ico";
Для некоторых сайтов есть такой фавикон, например - http://forum-pravda.ru/favicon.ico но для многих (думаю, для большинства) - нет, увы.
У меня есть вопрос - как проверить, есть такой URL http://" + siteURI.split(/\/+/g)[1] + "/favicon.ico" или нет (без открытия вкладки, естественно). или как-то проверить - получается ли унылый, безликий фавикон или нет?
Спасибо


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№523-12-2015 14:10:46

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4512
UA: Chrome 47.0

Re: [CB]Восстановить иконки всех закладок

difabor

Выделить код

Код:

var hostURI = "http://" + siteURI.split(/\/+/g)[1] + "/";
var faviconURI = hostURI + "favicon.ico";  // адрес иконки, если не получить адрес иконки из сайта

Ну это не серёзно, сработает только если угадать адрес фавиконки, на случай если сервер на котором сайт не отвечает.

У меня есть вопрос - как проверить, есть такой URL http://" + siteURI.split(/\/+/g)[1] + "/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();

Но наверно это не то что ты хотел узнать.

Отсутствует

 

№623-12-2015 20:04:42

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 383
UA: Firefox 36.0
Веб-сайт

Re: [CB]Восстановить иконки всех закладок

Спасибо, bunda1, я попробую поиграться. Если что-то получится - расскажу


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№723-12-2015 20:10:31

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4512
UA: Firefox 24.0

Re: [CB]Восстановить иконки всех закладок

difabor пишет:

Спасибо, bunda1, я попробую поиграться. Если что-то получится - расскажу

А что должно получится?

Отсутствует

 

№823-12-2015 21:17:09

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 383
UA: Firefox 36.0
Веб-сайт

Re: [CB]Восстановить иконки всех закладок

Если Вы помните, в своё время я с Вашей помощью написал кнопку [CB] Показывать иконки сайтов, у которых их нет, в табах и адр. строке
Поступил запрос - добавить этот трюк и в восстановление иконок закладок. Чтобы "безликие", "унылые"сайты тоже приобрели нечто типа иконки.
Для этого мне надо ту функцию генерации иконок присобачить и к восстановлению иконок в закладках.
Я поиграюсь и расскажу что получилось.


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№923-12-2015 21:43:15

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4512
UA: Firefox 3.6

Re: [CB]Восстановить иконки всех закладок

difabor пишет:

Поступил запрос - добавить этот трюк и в восстановление иконок закладок. Чтобы "безликие", "унылые"сайты тоже приобрели нечто типа иконки.

Ты хочешь добавить к закладкам без иконок сайта свои иконки, я правильно понял?

Отсутствует

 

№1023-12-2015 22:24:30

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 383
UA: Firefox 36.0
Веб-сайт

Re: [CB]Восстановить иконки всех закладок

bunda1 пишет:

difabor пишет:

Поступил запрос - добавить этот трюк и в восстановление иконок закладок. Чтобы "безликие", "унылые"сайты тоже приобрели нечто типа иконки.

Ты хочешь добавить к закладкам без иконок сайта свои иконки, я правильно понял?

Да, которые в "Справке".
Иными словами, я хочу объединить две кнопки


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№1127-12-2015 21:52:49

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 383
UA: Firefox 36.0
Веб-сайт

Re: [CB]Восстановить иконки всех закладок

Уважаемый bunda1,
мне частично удалось присобачить свои иконки к закладкам: все обычные безликие сайты, не имевшие фавиконов приобрели мои иконки, совпадающие с теми, которые на табах.
Что не удалось:
Присобачить иконки к
1)about:...
2)chrome://
3)javascript
4)фидам типа http://lenta.ru/rss/ или http://www.gazeta.ru/export/rss/lastnews.xml или http://trim-c.livejournal.com/data/atom
При этом замена

Выделить код

Код:

: child.uri.startsWith("http") && child.icon == '' && getSiteFavicon( child.uri );

на

Выделить код

Код:

 : (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 );

не помогла


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№1227-12-2015 23:52:29

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4512

Re: [CB]Восстановить иконки всех закладок

Ну если так:

Выделить код

Код:

child.icon == '' && getSiteFavicon( child.uri );

Отсутствует

 

№1328-12-2015 01:41:03

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 383
UA: Firefox 36.0
Веб-сайт

Re: [CB]Восстановить иконки всех закладок

Не помогает, увы :(


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№1413-05-2016 19:12:24

Stakhovsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 544
UA: Firefox 45.0

Re: [CB]Восстановить иконки всех закладок

Помогите пожалуйста если можно сделать такой же пункт (Восстановить иконки закладок) в контекстном меню папок и подпапок на панели закладок который будет обновлять иконки только в данной папке. Когда очень много закладок запускать процесс ради пары иконок очень ощутимо сказывается на работе браузера.

Отредактировано Stakhovsky (13-05-2016 19:19:36)

Отсутствует

 

№1513-05-2016 21:40:26

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4512
UA: Firefox 24.0

Re: [CB]Восстановить иконки всех закладок

Stakhovsky пишет:

Когда очень много закладок запускать процесс ради пары иконок очень ощутимо сказывается на работе браузера.

Иконки не должны сами пропадать, похоже у тебя какой то глюк.

Отсутствует

 

№1613-05-2016 21:53:36

Stakhovsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 544
UA: Firefox 45.0

Re: [CB]Восстановить иконки всех закладок

bunda1
Так они не пропадают, не всегда добавляется иконка когда добавляю закладку.

Добавлено 13-05-2016 22:07:05
Например я надобавлял закладок но на некоторых нет иконок, я нажимаю "Восстановить иконки всех закладок" и обновляются закладки у которых нет значка.
Но когда очень много закдалок они как то все анализируются что занимает много времени и ощутимо на работе браузера.
Если можно добавить пункт в контекстное меню папки закладок, что бы обновлялись закладки только в одной нужной папке.

Отредактировано Stakhovsky (13-05-2016 22:10:47)

Отсутствует

 

№1717-05-2016 19:43:43

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4512
UA: Firefox 24.0

Re: [CB]Восстановить иконки всех закладок

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) );

})();

Отсутствует

 

№1818-05-2016 11:46:03

Stakhovsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 544
UA: Firefox 45.0

Re: [CB]Восстановить иконки всех закладок

bunda1
Просто бомба) класс, благодарю.

Отсутствует

 

№1926-05-2016 12:23:21

brom113
Участник
 
Группа: Members
Зарегистрирован: 23-03-2011
Сообщений: 12
UA: Firefox 46.0

Re: [CB]Восстановить иконки всех закладок

bunda1, Спасибо Вам за труд, это то, что надо!! Только есть небольшой нюансик, если этот код вставить в кнопку ниже кода: «Добавить новый пункт "Удалить дубликаты закладок" в меню папок закладок» (если он присутствует в кнопке), то тогда код "Восстановить иконки закладок" в меню папок закладок»  не работает и в меню папок закладок ничего не появляется.

P.S.
Можно добавить в оисание кнопки, чтобы в будущем не возникали вопросы - "почему не работает")

Отсутствует

 

№2026-05-2016 20:51:11

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4512
UA: Firefox 24.0

Re: [CB]Восстановить иконки всех закладок

brom113 пишет:

если этот код вставить в кнопку ниже кода: «Добавить новый пункт "Удалить дубликаты закладок" в меню папок закладок» (если он присутствует в кнопке), то тогда код "Восстановить иконки закладок" в меню папок закладок»  не работает и в меню папок закладок ничего не появляется.

Спасибо. Надо будет исправить.

Отсутствует

 

№2130-06-2016 14:40:45

citehala
Участник
 
Группа: Members
Зарегистрирован: 07-05-2015
Сообщений: 63
UA: Firefox 47.0

Re: [CB]Восстановить иконки всех закладок

Ребята, всем спасибо, сделал кнопку.

Как выглядит
http://ipic.su/img/img7/fs/kiss_5kb.1467286728.png

Код кнопки

Выделить код

Код:

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

Отредактировано citehala (30-06-2016 15:04:04)

Отсутствует

 

№2207-08-2016 13:57:27

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 137
UA: Firefox 45.0

Re: [CB]Восстановить иконки всех закладок

citehala
Выглядит он а совсем не так, а раз в пять больше.

Отсутствует

 

№2308-08-2016 04:11:14

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 383
UA: Firefox 28.0
Веб-сайт

Re: [CB]Восстановить иконки всех закладок

citehala, а нельзя ли добавить в эту кнопку возможность восстановления всех иконок по левому клику на саму кнопку?


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№2408-08-2016 20:21:23

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4512
UA: Firefox 24.0

Re: [CB]Восстановить иконки всех закладок

difabor пишет:

citehala, а нельзя ли добавить в эту кнопку возможность восстановления всех иконок по левому клику на саму кнопку?

Выделить код

Код:

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%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

Отсутствует

 

№2509-08-2016 00:50:03

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 383
UA: Firefox 28.0
Веб-сайт

Re: [CB]Восстановить иконки всех закладок

bunda1, спасибо!


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2011 Mozilla Russia
Язык отображения форума: [Русский] [English]