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

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

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

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

   

Yurkesch



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
// Добавить новый пункт "Восстановить иконки всех закладок" в меню "Закладки", от 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();
   };    
     
})();

Всего записей: 1130 | Зарегистр. 25-12-2004 | Отправлено: 23:20 25-07-2017 | Исправлено: Yurkesch, 23:23 25-07-2017
   

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

Компьютерный форум Ru.Board » Компьютеры » Программы » Mozilla Firefox (часть 17)
gyra (15-02-2018 13:51): Mozilla Firefox (часть 18)


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru