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

В мире Mozilla происходит много интересных событий. Но вам не нужно постоянно посещать новостные сайты, чтобы быть в курсе всех изменений. Зайдите на ленту новостей Mozilla Россия.

№5103-12-2013 20:45:03

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

Re: [CB]Изменить масштаб

rbfyec
Да "Открывать всё в новых вкладках, от 17.11.2013" глючит буду исправлять.

Отсутствует

 

№5204-12-2013 19:27:54

rbfyec
Участник
 
Группа: Members
Зарегистрирован: 07-07-2012
Сообщений: 365
UA: Firefox 25.0

Re: [CB]Изменить масштаб

bunda1 пишет

Да "Открывать всё в новых вкладках, от 17.11.2013" глючит буду исправлять.

Буду ждать :)

Отредактировано rbfyec (04-12-2013 19:29:27)

Отсутствует

 

№5307-12-2013 01:12:30

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

Re: [CB]Изменить масштаб

rbfyec пишет
bunda1 пишет

Да "Открывать всё в новых вкладках, от 17.11.2013" глючит буду исправлять.

Буду ждать :)

Выделить код

Код:

// Открывать всё в новых вкладках, от 06.12.2013. ......................................
(function () {
   // открывать всё в новых вкладках, если пустая страница открывать в текущей ....
   const where = whereToOpenLink;
   eval("whereToOpenLink = " + where.toString().replace('return "current";\n}', '\nif ( ["about:newtab", "about:blank"].indexOf(content.location.href)!= -1 ) return "current"; \nreturn e.originalTarget.id ? "tab" : "current";;\n}'));   

   // открывать закладки и историю в новых вкладках, если букмарклети или пустая страница в текущей ....
   const openNode = PlacesUIUtils._openNodeIn;
   eval("PlacesUIUtils._openNodeIn = " + openNode.toString().replace(') {', '){\n if (["about:newtab", "about:blank"].indexOf(content.location.href)!= -1 ) aWhere = "current";\n aWhere = (aWhere == "tab" || aNode.uri.startsWith("javascript:") ) ? "current" : "tab";\n')
   );

   // если JavaScript ссылка или пустая страница открывать в текущей ....
   const linkIn = openLinkIn;
   eval("openLinkIn = " + linkIn.toString().replace(';', ';;\n if ( url.startsWith("javascript:") ) where = "current";\n if (["about:newtab", "about:blank"].indexOf(content.location.href)!= -1 ) where = "current";')
   );

   // команды адресной строки открывают всё связанное с адресной строкой в новых вкладках, если alt+ в текущей ....
   const handle = gURLBar.handleCommand;
   eval("gURLBar.handleCommand = " + handle.toString().replace(/aTriggeringEvent\s*&&\s*aTriggeringEvent.altKey/, "!($&)"));

   // удалять изменения из внутренних функций Firefox ....
   addDestructor(function() {
      eval("whereToOpenLink = " + where);
      eval("PlacesUIUtils._openNodeIn = " + openNode);
      eval("openLinkIn = " + linkIn);
      eval("gURLBar.handleCommand = " + handle);
   });
   
})();

Отредактировано bunda1 (07-12-2013 01:13:06)

Отсутствует

 

№5407-12-2013 13:05:34

rbfyec
Участник
 
Группа: Members
Зарегистрирован: 07-07-2012
Сообщений: 365
UA: Firefox 25.0

Re: [CB]Изменить масштаб

Спасибо! Теперь буду тестить, гонять во всех режимах, смотреть что получится :)

Отсутствует

 

№5507-12-2013 15:20:58

rbfyec
Участник
 
Группа: Members
Зарегистрирован: 07-07-2012
Сообщений: 365
UA: Firefox 25.0

Re: [CB]Изменить масштаб

Что замечено: если кликнуть кнопку "Перезагрузить" - это открывает страницу в новой вкладке. Несмотря на нажатый Alt.

То же самое если кликнуть стрелку в адресной строке (id="go-button").
А вот если нажимать Enter (фокус в адресной строке) - тогда да, без Alt адрес открывается в новой вкладке, с Alt - в текущей.

Отсутствует

 

№5607-12-2013 15:45:45

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 28.0

Re: [CB]Изменить масштаб

bunda1
А можешь сделать чтобы Открывать всё в новых вкладках работала с Location Bar Enhancer в адресной строке?

Отсутствует

 

№5707-12-2013 19:13:01

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

Re: [CB]Изменить масштаб

rbfyec и voqabuhe
Лучше перенести обсуждение Открывать всё в новых вкладках сюда Custom Buttons | Форум Mozilla Россия

Отсутствует

 

№5830-12-2013 12:33:10

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

Re: [CB]Изменить масштаб

bunda1 пишет

Изменить масштаб( Firefox 3.6 + )
Автор: bunda1
Версия: от 30.11.2013.
Описание: Kод создает в адресной строке кнопку которая показывает размер масштаба текущей страницы.

Колесиком мыши на кнопке можно менять масштаб текущей страницы.
Левым кликом на кнопке можно переключить режим изменения масштаба - менять масштаб страниц или менять масштаб только текста на страницах, если переключена на менять только текст размер масштаба в адресной строке будет отображаться жирным шрифтом.
Средним кликом  на кнопке можно переключить - единый масштаб для всех страниц или только для сайта, если переключена на единый масштаб для всех страниц - размер масштаба в адресной строке будет красного цвета.
Правым кликом на кнопке можно сбросить масштаб на 100%.

Использование: положите код в любую Custom Buttons кнопку, в инициализацию. Не обязательно создавать новую CB кнопку, можно использовать уже существующую.

У меня возник вопрос касательно текстового зума.
Не знаю, правда, или это в принципе возможно, но если да, то хотелось бы иметь эту возможность (или если можно, покажите как её добавить)
Допустим у меня полный зум ( и текст и остальное) равен 90%.
Левым кликом я оставлю текст в 90%, а всё остальное будет переведено в 100%.
Далее я могу регулировать как угодно зум текста колёсиком.
Это - то, что мы имеем на сегодня.
Есть ли возможность ввести режим (назовём его "Текст1"), при переключении на который полный зум останется таким как был до переключения (а не 100% безусловно), а текстовый зум я смогу менять как угодно?
Или это просто в принципе невозможно?


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

Отсутствует

 

№5902-01-2014 23:34:42

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

Re: [CB]Изменить масштаб

difabor пишет

Есть ли возможность ввести режим (назовём его "Текст1"), при переключении на который полный зум останется таким как был до переключения (а не 100% безусловно), а текстовый зум я смогу менять как угодно?
Или это просто в принципе невозможно?

Возможность такая наверно есть но я не знаю как это сделать. Надо подумать.

Отсутствует

 

№6010-03-2014 14:22:03

ma3ca
Участник
 
Группа: Members
Зарегистрирован: 15-02-2009
Сообщений: 54
UA: Firefox 27.0

Re: [CB]Изменить масштаб

Спасибо! Менять масштаб только текста это шикарно!!!

Заметил небольшую особенность, если добавляешь код инициализации в существующую кнопку, то она мутнеет (обесцвечивается).
Это можно поправить? :)

Отсутствует

 

№6110-03-2014 14:31:50

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 30.0

Re: [CB]Изменить масштаб

ma3ca пишет

Заметил небольшую особенность, если добавляешь код инициализации в существующую кнопку, то она мутнеет (обесцвечивается).
Это можно поправить?

№5914

Отсутствует

 

№6210-03-2014 14:37:43

ma3ca
Участник
 
Группа: Members
Зарегистрирован: 15-02-2009
Сообщений: 54
UA: Firefox 27.0

Re: [CB]Изменить масштаб

voqabuhe пишет

№5914

Вставил код, перед инициализацией кода масштаба, но не помогло.

Там даже если новую кнопку создавать, то она все-равно обесцвеченная получается. :)

Разобрался, отключил дополнение, которое меняло масштаб, оставил только эту кнопку.

И ещё вопрос, можно ли сделать так, что когда выбрана левая кнопка, то масштаб отображается курсивом?

Отредактировано ma3ca (10-03-2014 14:42:54)

Отсутствует

 

№6310-03-2014 20:49:31

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

Re: [CB]Изменить масштаб

ma3ca пишет

И ещё вопрос, можно ли сделать так, что когда выбрана левая кнопка, то масштаб отображается курсивом?

Не совсем понял что требуется, но попробуй заменить в коде:

Выделить код

Код:

zoomButton.style.fontWeight = ZoomManager.useFullZoom ? '' : 'bold';

на:

Выделить код

Код:

zoomButton.style.fontFamily = ZoomManager.useFullZoom ? '' : 'cursive';

Отсутствует

 

№6402-06-2014 09:04:36

dddaaakkk
Участник
 
Группа: Members
Зарегистрирован: 30-05-2014
Сообщений: 6
UA: Firefox 27.0

Re: [CB]Изменить масштаб

Спасибо bunda1 за отличную кнопку!

Давно хотел что-то подобное и вы можно сказать реализовали мою мечту :)

Нашел небольшую проблему: у меня кнопка оказалась не самой левой в ряду иконок:
7b1d9aa62ebf.png
Проверял на чистом профайле, там кнопка встала слева от звезды, но после зотеро.
Помогло изменение в коде в данной строке:

Выделить код

Код:

...
urlbarIcons.insertBefore( zoomButton, urlbarIcons.lastChild ); // перед первой иконкой адресной строки
...

заменил lastChild на firstChild и кнопка встала на своё место - самое левое после всех иконок.

Проверено на фаере 29, виндоус 7.

Отсутствует

 

№6502-06-2014 23:16:02

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

Re: [CB]Изменить масштаб

Похоже что зотеро запускает похожий код добавления кнопки но после того как срабатывает расширение Сustom Buttons и код Изменить масштаб

Добавлено 02-06-2014 23:19:47
Мда, фраза перед первой иконкой адресной строки немного водит в заблуждение. Исправлю. Спасибо :)

Отредактировано bunda1 (02-06-2014 23:19:47)

Отсутствует

 

№6623-08-2014 00:42:43

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 34.0

Re: [CB]Изменить масштаб

bunda1
В [nightly] показывает одинаковый масштаб для всех страниц. Сама кнопка стала тусклой, как не активная, а в сборных кнопка вообще не работает. Если можно поправь, плиз.

Отсутствует

 

№6723-08-2014 13:07:54

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

Re: [CB]Изменить масштаб

voqabuhe пишет

bunda1
В [nightly] показывает одинаковый масштаб для всех страниц. Сама кнопка стала тусклой, как не активная, а в сборных кнопка вообще не работает. Если можно поправь, плиз.

Выделить код

Код:

// Кнопка для управления масштабом страницы в адресной строке, от 30.11.2013. ................................
(function () {   
   // Создать в адресной строке кнопку масштаба ....
   var zoomButton = document.createElement("statusbarpanel");
   var urlbarIcons = document.getElementById("urlbar-icons");
   urlbarIcons.insertBefore( zoomButton, urlbarIcons.lastChild ); // перед последней кнопкой адресной строки
   addDestructor(function() { urlbarIcons.removeChild( zoomButton ) });
   
   updateZoomButton(); 
   zoomButton.id = "zoomButton";
   zoomButton.style.cssText = "-moz-appearance: none; border: 0; margin-right: -20px;"; // Css стиль для кнопки масштаба
   zoomButton.tooltipText = "Л: Менять масштаб страницы или только текста\nС: Единый масштаб для всех страниц \nП: Сбросить масштаб на 100% ";

   
   // Отслеживать клики на кнопке масштаба ....           
   addEventListener("click", function(e) {                  
      if ( e.button == 0 ) ZoomManager.toggleZoom(); // переключить режим изминения масштаба
      
      if ( e.button == 1 ) { // единый масштаб для всех страниц
           cbu.isPref("CB.zoom.allEvenly", false );
           cbu.setPrefs("CB.zoom.allEvenly", !cbu.getPrefs("CB.zoom.allEvenly") );
           cbu.setPrefs("CB.zoom.Percent", ZoomManager.zoom.toFixed(2) );
                
           updateZoomButton();
           }

      if ( e.button == 2 ) { e.preventDefault(); FullZoom.reset() }; // сбросить масштаб
               
   }, false, zoomButton );

         
   // Менять масштаб колесиком мыши на кнопке масштаба ....
   addEventListener("DOMMouseScroll", function(e) {
      e.detail > 0 ? FullZoom.reduce() : FullZoom.enlarge();
   }, false, zoomButton );
           
 
   // Следим за изменением масштаба и запускаем обновление кнопки ....
   var str = "updateZoomButton(); $&";
   var array = [FullZoom.reset, FullZoom.reduce, FullZoom.enlarge, ZoomManager.toggleZoom, FullZoom.handleEvent];
   array.forEach(function( func ) { eval( (func.toString().match(/function ([^(]*)\(/)[1] + " = " + func.toString().replace(/}$/, str)).replace('_', '.') ) }); 
   addDestructor(function() { 
      array.forEach(function( func ) { eval( (func.toString().match(/function ([^(]*)\(/)[1] + " = " + func.toString()).replace('_', '.') ) });  
   });
   
   
   // Показывать текущий масштаб страницы на кнопке и изменять цвет и шрифт отображения масштаба ....
   function updateZoomButton(e) {
      zoomButton.label = Math.round(ZoomManager.zoom*100) + "%"; 
      setTimeout(function() {  
         zoomButton.style.fontWeight = ZoomManager.useFullZoom ? '' : 'bold';
         zoomButton.style.color = cbu.getPrefs("CB.zoom.allEvenly") ? "red" : "";
      }, 5);
      
      // запомнить текущий масштаб в 'about:config'
      if ( e == undefined ) { 
           try { window.clearTimeout( prefTimeout ) } catch(e) {};
           prefTimeout = window.setTimeout(function() {
              cbu.setPrefs("CB.zoom.Percent", ZoomManager.zoom.toFixed(2) )  
           }, 250 );
           }     
   };
     
     
   // Устанавливать единый масштаб для всех страниц если это разрешено в 'about:config' ....
   addEventListener("TabAttrModified", function(e) { 
      if ( e.target.linkedBrowser.currentURI.spec !== gBrowser.currentURI.spec ) return;
             
      if ( cbu.getPrefs("CB.zoom.allEvenly") && content.location.protocol.startsWith("http") ) {
       var value = cbu.getPrefs("CB.zoom.Percent");
       if ( ZoomManager.zoom.toFixed(2) == value ) return;

       setTimeout(function() {  
              gBrowser.markupDocumentViewer[ZoomManager.useFullZoom ? 'fullZoom' : 'textZoom'] = value;
              updateZoomButton(e);   
           }, 0) 
           }
      
      else updateZoomButton(e);      
   }, true, gBrowser.tabContainer );   
})();

Отсутствует

 

№6823-08-2014 15:57:54

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 34.0

Re: [CB]Изменить масштаб

bunda1
Спасибо, теперь всё работает, всё отлично.

Отсутствует

 

№6914-09-2014 20:56:00

Mishania
Забанен
 
Группа: Members
Откуда: Usa
Зарегистрирован: 22-10-2011
Сообщений: 357
UA: Firefox 32.0

Re: [CB]Изменить масштаб

А можно соединить эту кнопку с этой:

скрытый текст

Выделить код

Код:

// Объявляем переменные для этой вкладки ................................
var _this = this;
var alertsService = Components.classes["@mozilla.org/alerts-service;1"].getService(Components.interfaces.nsIAlertsService);
var bmsvc = Components.classes["@mozilla.org/browser/nav-bookmarks-service;1"].getService(Components.interfaces.nsINavBookmarksService);


var ucjsMouseGestures = {

   // настройки ....
   enableWheelGestures: true,
   enableRockerGestures: true,
   enablePopupGestures: true,

   _lastX: 0,
   _lastY: 0,
   _directionChain: '',
   _isMouseDownL: false,
   _isMouseDownR: false,
   _hideFireContext: false,    //for windows
   _shouldFireContext: false, //for linux
   POPUP_ID: 'GesturePopup',
   
   // Жесты ....
   GESTURES: {
           
// Управление страницей ................................
  'W-':{name:'Увеличить масштаб',cmd:function(){ FullZoom.enlarge() }},
  'W+':{name:'Уменьшить масштаб',cmd:function(){ FullZoom.reduce() }},
  'UDU':{name:'Сбросить масштаб',cmd:function(){ FullZoom.reset() }},
  'L<R':{name:'Сбросить масштаб',cmd:function(){ FullZoom.reset() }},
},

init:function() {
    var self = this;
    var events = ["mousedown", "mousemove", "mouseup", "contextmenu"];
    if ( this.enableRockerGestures ) events.push("draggesture");
    if ( this.enableWheelGestures ) events.push("DOMMouseScroll");
    function registerEvents( aAction, eventArray ) {
       eventArray.forEach(function(aType) { gBrowser.mPanelContainer[aAction + "EventListener"]( aType, self, true ) });
    };
    registerEvents("add", events);

    window.addEventListener("unload", function() { 
           registerEvents("remove",events);
    }, false );
    addDestructor(function() { registerEvents("remove", events) }); 
},

handleEvent:function( event ) {
    switch( event.type ) {
        case"mousedown":
            if ( event.button ==2 ) {
                 this._isMouseDownR = true;
                 this._hideFireContext = false;
                 this._startGesture( event );
                 }
            if ( this.enableRockerGestures ) {
                 if ( event.button == 2 && this._isMouseDownL ) {
                      this._isMouseDownL = false;
                      this._isMouseDownR = false;
                      this._shouldFireContext = false;
                      this._hideFireContext = true;
                      this._directionChain = "L>R";
                      this._stopGesture(event);
                      }
                 else if ( event.button == 0 ) {
                           this._isMouseDownL = true;
                           if ( this._isMouseDownR ) {
                                this._isMouseDownL = false;
                                this._shouldFireContext = false;
                                this._hideFireContext = true;
                                this._directionChain = "L<R";
                                this._stopGesture( event );
                                }
                           }
                 }
                break;

        case"mousemove":
            if ( this._isMouseDownR ) {
                 this._hideFireContext = true;
                 this._progressGesture( event );
                 }
            break;

        case"mouseup":
            if ( content.xdTrailArea ) {
                 content.xdTrailArea.parentNode.removeChild( content.xdTrailArea );
                 content.xdTrailArea = content.document.documentElement.appendChild(document.createElementNS("http://www.w3.org/1999/xhtml", "xdTrailArea"));
                 }
            if ( event.ctrlKey && event.button == 2 ) {
                 this._isMouseDownL = false;
                 this._isMouseDownR = false;
                 this._shouldFireContext = false;
                 this._hideFireContext = false;
                 this._directionChain = '';
                 event.preventDefault();
                 XULBrowserWindow.statusTextField.label = "Reset Gesture";
                 break;
                 }
            if ( this._isMouseDownR && event.button == 2 ) {
                 if ( this._directionChain ) this._shouldFireContext = false;
                      this._isMouseDownR = false;
                      this._stopGesture( event );
                 if ( this._shouldFireContext && !this._hideFireContext ) {
                      this._shouldFireContext = false;
                      this._displayContextMenu( event );
                      }
                 }
            else if ( this.enableRockerGestures && event.button == 0 && this._isMouseDownL ) { 
                      this._isMouseDownL = false;
                      this._shouldFireContext = false;
                      }
            else if ( this.enablePopupGestures && ( event.button == 0 || event.button == 1 ) && event.target.localName =='menuitem' ) {
                      this._isMouseDownL = false;
                      this._shouldFireContext = false;
                      var popup = document.getElementById( this.POPUP_ID );
                      var activeItem = event.target;
                  
                      switch( popup.getAttribute("gesturecommand") ) {
                          case"WebSearchPopup":
                              var selText = popup.getAttribute("selectedtext");
                              var engine = activeItem.engine;
                              if ( !engine ) break;
                              var submission = engine.getSubmission( selText, null );
                              if ( !submission ) break;
                              document.getElementById('searchbar').textbox.value = selText;
                              gBrowser.loadOneTab( submission.uri.spec,null,null,submission.postData,null,false );
                              break;
                          case"ClosedTabsPopup":
                              undoCloseTab( activeItem.index );
                              break;
                          case"HistoryPopup":
                              gBrowser.webNavigation.gotoIndex( activeItem.index );
                              break;
                          case"AllTabsPopup":
                              gBrowser.selectedTab = gBrowser.mTabs[activeItem.index];
                              break;
                          }
                      popup.hidePopup();
                      }
            try { document.getElementById("statusbar-display").label = "" } catch(e) {};
            break;
        
        case"popuphiding":
            var popup = document.getElementById( this.POPUP_ID );
            popup.removeEventListener("popuphiding",this,true);
            document.documentElement.removeEventListener("mouseup",this,true);
            while( popup.hasChildNodes() ) popup.removeChild( popup.lastChild );
            break;

        case"contextmenu":
            if ( this._isMouseDownL || this._isMouseDownR || this._hideFireContext ) {
                 event.preventDefault();
                 event.stopPropagation();
                 this._shouldFireContext = true;
                 this._hideFireContext = false;
                 }
            break;

        case"DOMMouseScroll":
            if ( this.enableWheelGestures&&this._isMouseDownR ) {
                 event.preventDefault();
                 event.stopPropagation();
                 this._shouldFireContext = false;
                 this._hideFireContext = true;
                 this._directionChain = "W" + ( event.detail > 0 ? "+" : "-" );
                 this._stopGesture(event);
                 }
             break;

        case"draggesture":
            this._isMouseDownL = false;
            break;
        }
},

_displayContextMenu:function( event ) {
    var evt = event.originalTarget.ownerDocument.createEvent("MouseEvents");
    evt.initMouseEvent("contextmenu",true,true,event.originalTarget.defaultView,0,event.screenX,event.screenY,event.clientX,event.clientY,false,false,false,false,2,null);
    event.originalTarget.dispatchEvent(evt);
},

_startGesture:function( event ) {
    this._lastX = event.screenX;
    this._lastY = event.screenY;
    this._directionChain = "";
},

_progressGesture:function( event ) {
    var x = event.screenX, y = event.screenY;
    var lastX = this._lastX, lastY = this._lastY;
    var subX = x-lastX, subY=y-lastY;
    var distX = ( subX > 0 ? subX : (-subX) ), distY = ( subY > 0 ? subY : ( -subY ) );
    var direction;
    if ( distX < 10 && distY < 10 ) return;
        
        if ( distX > distY ) direction = subX < 0 ? "L" : "R";
    else direction = subY < 0 ? "U" : "D";

    var dChain = this._directionChain;
    if ( direction !== dChain.charAt( dChain.length-1 ) ) {
         dChain += direction;
         this._directionChain += direction;
         var gesture = this.GESTURES[dChain];
         XULBrowserWindow.statusTextField.label = "Жест мыши: "+ dChain + ( gesture ? ' ('+ gesture.name +')' : '' );
         }
    this._lastX = x;
    this._lastY = y;
},

_stopGesture:function(event){
    try {
        if ( dChain = this._directionChain ) this.GESTURES[dChain].cmd( this, event );
        XULBrowserWindow.statusTextField.label = "";
    }
    catch(e) {
             setTimeout(function() { XULBrowserWindow.statusTextField.label = "Неизвестный жест мыши: " + dChain }, 0);
             setTimeout(function() { XULBrowserWindow.statusTextField.label = "" }, 600);
    }
    this._directionChain = "";
},

_buildPopup:function( event,gestureCmd ) {
    if ( !this.enablePopupGestures ) return;
    var popup = document.getElementById( this.POPUP_ID );
    if ( !popup ) {
         popup = document.createElement("popup");
         popup.id = this.POPUP_ID;
         }
    document.getElementById("mainPopupSet").appendChild( popup );
    popup.setAttribute("gesturecommand", gestureCmd );
    
    switch( gestureCmd ) {
        case"WebSearchPopup":
            var searchSvc = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService);
            var engines = searchSvc.getVisibleEngines({});
            if ( engines.length < 1 ) throw"Поисковые системы не установлены.";
            for ( var i = engines.length - 1; i >= 0;--i ) {
                  var engine = engines[i];
                  var menuitem = document.createElement("menuitem");
                  menuitem.setAttribute("label", engine.name );
                  menuitem.setAttribute("class", "menuitem-iconic");
                  if ( engine.iconURI ) menuitem.setAttribute("src", engine.iconURI.spec );
                  popup.insertBefore( menuitem, popup.firstChild );
                  menuitem.engine = engine;
                  }
            popup.setAttribute("selectedtext", getBrowserSelection().toString() );
            break;
        
        case"ClosedTabsPopup":
            try {
                if ( !gPrefService.getBoolPref("browser.sessionstore.enabled") ) throw"Функция восстановления сессий отключена.";
                }
            catch(e){}
            var ss = Cc["@mozilla.org/browser/sessionstore;1"].getService(Ci.nsISessionStore);
            if ( ss.getClosedTabCount(window) ==0 ) throw"Нет восстанавливаемых вкладок в этом окне.";
            var undoItems = eval("("+ss.getClosedTabData(window)+")");
            for ( var i=0, LEN = undoItems.length; i<LEN; i++ ) {
                  var menuitem=popup.appendChild(document.createElement("menuitem"));
                  menuitem.setAttribute("label",undoItems[i].title);
                  menuitem.setAttribute("class","menuitem-iconic bookmark-item");
                  menuitem.index = i;
                  var iconURL = undoItems[i].image;
                  if ( iconURL ) menuitem.setAttribute("image", iconURL );
                  }
            break;
        
        case"HistoryPopup":
            var sessionHistory = gBrowser.webNavigation.sessionHistory;
            if ( sessionHistory.count<1 ) throw"Нет истории в этой вкладке.";
            var curIdx = sessionHistory.index;
            for ( var i = 0, shc = sessionHistory.count; i < shc; i++ ) {
                  var entry = sessionHistory.getEntryAtIndex(i,false);
                  if ( !entry ) continue;
                  var menuitem = document.createElement("menuitem");
                  popup.insertBefore(menuitem,popup.firstChild);
                  menuitem.setAttribute("label",entry.title);
                  try {
                      var iconURL = Cc["@mozilla.org/browser/favicon-service;1"].getService(Ci.nsIFaviconService).getFaviconForPage( entry.URI ).spec;
                      menuitem.style.listStyleImage = "url("+iconURL+")";
                      }
                  catch(e){}
                  menuitem.index = i;
                  if ( i==curIdx ) {
                       menuitem.style.listStyleImage = "";
                       menuitem.setAttribute("type","radio");
                       menuitem.setAttribute("checked","true");
                       menuitem.className = "unified-nav-current";
                       activeItem = menuitem;
                       }
                  else 
                       {
                       menuitem.className = i< curIdx ? "unified-nav-back menuitem-iconic" : "unified-nav-forward menuitem-iconic";
                       }
            }
            break;
        
        case"AllTabsPopup":
            var tabs = gBrowser.mTabs;
            if ( tabs.length < 1 ) return;
            for ( var i=0, LEN = tabs.length; i < LEN; i++ ) {
                  var menuitem = popup.appendChild(document.createElement("menuitem"));
                  var tab = tabs[i];
                  menuitem.setAttribute("class", "menuitem-iconic bookmark-item");
                  menuitem.setAttribute("label", tab.label);
                  menuitem.setAttribute("crop", tab.getAttribute("crop") );
                  menuitem.setAttribute("image", tab.getAttribute("image"));
                  menuitem.index = i;
                  if ( tab.selected ) menuitem.setAttribute("style", "color: red; font-weight: bold;");
                  if ( tab.hasAttribute('unread') ) menuitem.setAttribute("style", "color: blue;"); 
                  }
            break;
        }
        
    document.popupNode = null;
    document.tooltipNode = null;
    popup.addEventListener("popuphiding", this, true);
    popup.openPopup( null, "", event.clientX, event.clientY, false, false );
    document.documentElement.addEventListener("mouseup", this, true);
},
  };
ucjsMouseGestures.init();


?
И получится отличная замена MouseZoom

Отсутствует

 

№7014-09-2014 21:55:10

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

Re: [CB]Изменить масштаб

В каком смысле соединить, я не понял?

Отсутствует

 

№7114-09-2014 22:05:14

Mishania
Забанен
 
Группа: Members
Откуда: Usa
Зарегистрирован: 22-10-2011
Сообщений: 357
UA: Firefox 32.0

Re: [CB]Изменить масштаб

Оставить масштаб в адресной строке, функции ЛК и СК, а масштаб менять и сбрасывать по ПКМ+колёсико и ПК+ЛК. Чтоб не в адресной строке.
Я пока положил в одну инициализацию, в принципе работает и так.

Отсутствует

 

№7214-09-2014 22:28:05

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

Re: [CB]Изменить масштаб

Mishania пишет

Я пока положил в одну инициализацию, в принципе работает и так.

Да можно и так.

Отсутствует

 

№7329-09-2014 11:39:44

Quartz1t
Участник
 
Группа: Members
Зарегистрирован: 25-11-2013
Сообщений: 111
UA: Palemoon 24.0

Re: [CB]Изменить масштаб

Не отображается изменение масштаба (застопорилось на 100%) - PM 24.7.2

Отсутствует

 

№7429-09-2014 11:59:21

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

Re: [CB]Изменить масштаб

Quartz1t пишет

Не отображается изменение масштаба (застопорилось на 100%) - PM 24.7.2

На FF 24.8.1 работает, а что показывает при переключение масштаба выше 100% на кнопке консоль ошибок: chrome://global/content/console.xul

Отсутствует

 

№7529-09-2014 12:14:08

Quartz1t
Участник
 
Группа: Members
Зарегистрирован: 25-11-2013
Сообщений: 111
UA: Palemoon 24.0

Re: [CB]Изменить масштаб

bunda1 пишет

что показывает при переключение масштаба выше 100% на кнопке консоль ошибок: chrome://global/content/console.xul

пусто. попробую на "чистом" профиле, с одним дополнением СВ и одной кнопкой. после отпишусь...

Добавлено 29-09-2014 12:24:11
с "чистым" всё работает правильно. какая-то несовместимость... зря поднял шум. разберусь самостоятельно. спасибо.

----------------------------------

удалил дополнение Zoom Page и всё заработало, а вот простое отключение ничего не дало, что и ввело в заблуждение...

Отредактировано Quartz1t (29-09-2014 13:17:06)

Отсутствует

 

Board footer

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