Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Mozilla Firefox (часть 14)

Модерирует : gyra, Maz

articlebot (02-03-2016 15:07): Mozilla Firefox (часть 15)  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

shadow_member



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кнопка для Custom Buttons, добавляет в меню "Закладки" на панели меню новый пункт "Восстановить иконки всех закладок" который восстанавливает иконки всех закладок у которых нет иконок. Код полезен в случаях если закладок очень много а иконки пропали и вручную их восстанавливать долго.
Использование: положите код в любую Custom Buttons кнопку, в инициализацию. Не обязательно создавать новую CB кнопку, можно использовать любую уже существующую!!!, это очень здорово!  
Что интересно, для появления пункта в меню кнопку нужно вытащить на панель инструментов. При клике на самой кнопке будет выполняться ее основное действие, например, старт PingPlotter, а при клике на пункте меню  обновляются иконки закладок.
https://forum.mozilla-russia.org/viewtopic.php?id=64428
Код:
--------------------------------------------------
// Добавить новый пункт "Восстановить иконки всех закладок" в меню "Закладки", от 02.08.2014. ................................
(function() {
   // Создать новый пункт в меню ....
   var menuitem = document.createElement("menuitem");    
   menuitem.setAttribute("label", "Восстановить иконки всех закладок");
   var sep = document.getElementById("organizeBookmarksSeparator");  
   sep.parentNode.insertBefore( menuitem, sep );    
   addDestructor(function() { sep.parentNode.removeChild( menuitem ) });
   addEventListener("click", function() chooseBookmarks(1), false, menuitem ); // если клик на пункте меню      
   
   // Перебрать все http(s) закладки ....  
   function chooseBookmarks( id ) {
      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( faviconURI, siteURI ) {
      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();
   };    
     
})();
--------------------------------------------------

Всего записей: 22354 | Зарегистр. 18-07-2006 | Отправлено: 19:30 12-09-2015
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Mozilla Firefox (часть 14)
articlebot (02-03-2016 15:07): Mozilla Firefox (часть 15)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru