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

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

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

Maz (27-01-2023 15:36): SeaMonkey | Mozilla Suite (Часть 3)  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

Vitaliy977

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
// Кнопка для управления масштабом страницы в адресной строке
(()=> {
    // Удалить из адресной строки FF51 стандартную кнопку масштаба ....
    var but = document.getElementById("urlbar-zoom-button");
    if (but) but.style.display = "none";
   
    // Создать в адресной строке кнопку масштаба ....
    var urlbarIcons = document.getElementById("urlbar-icons") || document.getElementById("page-action-buttons");
    if (!urlbarIcons) return;
    var zoomButton = document.createElement("statusbarpanel");
    urlbarIcons.insertBefore(zoomButton, urlbarIcons.lastChild); // перед последней кнопкой адресной строки
    addDestructor(()=> zoomButton.remove());
     
    updateZoomButton();  
    zoomButton.id = "Zoom-Button";
    zoomButton.style.cssText = "-moz-appearance: none !important; border: none !important; margin: 0 !important; padding: 0 !important;"; // Css стиль для кнопки масштаба
    zoomButton.tooltipText = "Л: Менять масштаб страницы или только текста\nС: Максимально увеличить масштаб\nП: Сбросить масштаб на 100% ";
 
    // Отслеживать клики на кнопке масштаба ....            
    addEventListener("click", e=> {                  
        if ( e.button == 0 ) ZoomManager.toggleZoom(); // переключить режим изминения масштаба
       
        else if ( e.button == 1 ) {
            if (FullZoom.zoom)
                FullZoom.zoom(ZoomManager.MAX);
            else
                ZoomManager.zoom = ZoomManager.MAX;
            updateZoomButton();
        }
 
        else if ( e.button == 2 ) {  // сбросить масштаб
            FullZoom.reset();  
        }
    }, false, zoomButton);
 
    addEventListener("contextmenu", e=> {                  
        e.preventDefault();
    }, true, zoomButton);
     
    // Менять масштаб колесиком мыши на кнопке масштаба ....
    addEventListener("DOMMouseScroll", e=> {
        if (e.detail > 0) FullZoom.reduce();
        else FullZoom.enlarge();
    }, false, zoomButton);
 
    // Следим за изменением масштаба и запускаем обновление кнопки ....
    var evalcode = () => {
        window.removeEventListener("MozAfterPaint", evalcode, false);
        var str = "{ setTimeout(()=> { updateZoomButton(); }, 50);";
        var array = [FullZoom.reset, FullZoom.reduce, FullZoom.enlarge, FullZoom.handleEvent];
        array.forEach(func=> { setTimeout(()=> { eval( (func.toString().replace("_", ".").match(/function ([^(]*)\(/)[1] + " = " + func.toString().replace("{", str)) );}, 50); });  
        addDestructor(()=> {  
            array.forEach(func=> { eval( (func.toString().replace("_", ".").match(/function ([^(]*)\(/)[1] + " = " + func.toString()).replace(str,"{") ); });  
        });    
    };
    window.addEventListener("MozAfterPaint", evalcode, false);
   
    // Показывать текущий масштаб страницы на кнопке ....
    function updateZoomButton() {
        zoomButton.label = Math.round(ZoomManager.zoom*100) + "%";
    }
 
    addEventListener("TabAttrModified", e=> {
        if ( e.target.linkedBrowser.currentURI.spec !== gBrowser.currentURI.spec ) return;
        setTimeout(()=> {
            updateZoomButton();    
        }, 100);  
    }, false, gBrowser.tabContainer);
     
    addEventListener("TabSelect", e=> {
        if ( e.target.linkedBrowser.currentURI.spec !== gBrowser.currentURI.spec ) return;
        setTimeout(()=> {
            updateZoomButton();    
        }, 100);  
    }, false, gBrowser.tabContainer);    
})();
 

Всего записей: 718 | Зарегистр. 13-10-2013 | Отправлено: 19:52 15-11-2017 | Исправлено: Vitaliy977, 21:21 15-11-2017
   

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

Компьютерный форум Ru.Board » Компьютеры » Программы » SeaMonkey | Mozilla Suite (часть 2)
Maz (27-01-2023 15:36): SeaMonkey | Mozilla Suite (Часть 3)


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru