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

В мире Mozilla происходит много интересных событий. Но вам не нужно постоянно посещать новостные сайты, чтобы быть в курсе всех изменений. Зайдите на ленту новостей Mozilla Россия.
  • Форумы
  •  » Сustom Buttons
  •  » [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

№5123-09-2013 23:32:48

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

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

bunda1 пишет
difabor пишет

1. Возможно ли создание кнопки которая будет имитировать открытие какого-то фолдера из бара закладок?

Custom_Buttons/Bookmarks_Folder at master · Infocatcher/Custom_Buttons · GitHub

difabor пишет

2. Возможна ли работа кнопки не по кликам, а по фазам клика? Поясню подробнее, что я имею в виду.

Возможна конечно, я думаю с разным кликами + меню проблем нет. А вот как там открыть закладки не знаю, но думаю тоже возможно. Но лично мне такая кнопка субъективно не нравится.

Спасибо! Но я и не собирался создавать отдельные кнопки на закладки/фолдеры. Я предполагал "растворить" закладки/фолдеры в функциональных кнопках.
Другими словами, я предполагал "пришить" к функциональной кнопке (например, Memory Restart, 6 фолдеров, открывающихся по сочетаниям нажатий (Правое нажатие, затем левое, Левое, затем правое и т.д. всего возможно 6 таких сочетаний) с тем или иным фолдером - чтобы по каждому из этих сочетаний открывался список закладок/подфолдеров этого фолдера, по отпусканию второй из нажатых кнопок вызывалась бы выбранная закладка, по отпусканию первой из нажатых кнопок - страница бы заносилась в закладки.
При этом, например, Левое нажатие, Правый клик - это было бы загрузка первой закладки, из фолдера соответстветствующего Левому, затем правому нажатию. Почти аналогично бы страница заносилась бы в фолдер. То есть, мы бы имели одновременно и возможность выбора по контекстному меню и быстрый выбор.

bunda1 пишет
difabor пишет

4. Возможно ли работать по сочетанию кнопок мышки?
Если да, то к трём вариантам (левое/среднее/правое нажатие) добавилось бы ещё 6: л-с, л-п, с-л, с-п, п-л, п-с и при этом на каждое такое сочетание имелось бы два активных действия, а не одно - одна такая суперкнопка была бы эквивалентна примерно 20-ти обычным.

Вот это как раз легче всего.

difabor пишет

3. Возможна ли обработка двумерного списка?
Учитывая, что строка довольно большая, если её расцветить в несколько цветов - мы бы имели существенно больше возможностей на каждый менюитем.

Обработка двумерного списка тоже возможна, насчёт расцветить не знаю.

Если расцветить невозможно - есть ли возможность как-то выделить участки - точками или каким-то другим путём?


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

Отсутствует

 

№5224-09-2013 00:56:43

Крошка Ру
Участник
 
Группа: Extensions
Зарегистрирован: 19-10-2008
Сообщений: 8718
UA: Firefox 27.0

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

difabor , :)

:offtopic:

Нет, я не в попытке оспорить первенство, а к тому что чтобы продвинуть эти идеи в жизнь, нужно приложить тинанические усилия :lol:  И после уже сложно будет себя считать неквалифицированным пользователем... но тогда потеряется первоночальный смысл начинания :sick: :angel:

Отредактировано Крошка Ру (24-09-2013 00:59:18)

Отсутствует

 

№5309-05-2015 13:21:55

Northtech
Участник
 
Группа: Members
Зарегистрирован: 16-04-2011
Сообщений: 265
UA: Firefox 38.0

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

bunda1, а есть такая же кнопка, только чтобы СКМ (колёсико) открывать ссылки в новой фоновой вкладке не закрывая меню, а остальные кнопки действовали как полагается по умолчанию?

Отсутствует

 

№5409-05-2015 14:02:53

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

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

Northtech пишет

bunda1, а есть такая же кнопка, только чтобы СКМ (колёсико) открывать ссылки в новой фоновой вкладке не закрывая меню, а остальные кнопки действовали как полагается по умолчанию?

27-10-2012 15:38:15

Добавлено 09-05-2015 14:04:46
15-09-2013 14:51:40

Отредактировано bunda1 (09-05-2015 14:04:46)

Отсутствует

 

№5509-05-2015 17:08:50

Northtech
Участник
 
Группа: Members
Зарегистрирован: 16-04-2011
Сообщений: 265
UA: Firefox 38.0

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

bunda1 благодарю, не заметил)

Отсутствует

 

№5611-07-2015 02:41:40

becool
Участник
 
Группа: Members
Зарегистрирован: 30-08-2014
Сообщений: 268
UA: Firefox 39.0

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

bunda1 пишет

Открывать закладки левым кликом в новой вкладке

А для боковой панели закладок такое не сотворить?

Отсутствует

 

№5711-07-2015 12:13:10

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

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

becool пишет

А для боковой панели закладок такое не сотворить?

Выделить код

Код:

// Управление закладками, от 25.10.2014. ................................ 
(function func() {
   // страницы где левый клик открывает закладку в текущей странице
   var current = ["about:newtab", "about:blank", "chrome://browser/content/bookmarks/bookmarksPanel.xul"]; 
   
   const background = true;      // открывать закладку в фоновой вкладке
   const nextToCurrent = false;  // открывать закладку рядом с текущей вкладкой
   const menuAutoClose = true;   // автоматически закрыть меню закладок при уходе курсора
   
   function handleClick(e) { 
      var target = e.originalTarget;
      var sidebar = target.ownerDocument.defaultView.top !== content 
                    && target.id == 'bookmarks-view-children';
                    
      if ( !sidebar && !target._placesNode ) return; // стоп, если не закладка, папка, разделитель 

      // получить закладку, адрес, папку и id закладки, другие переменные
      if ( sidebar ) {
           var tree = target.parentNode;
           var box = tree.treeBoxObject;
           var row = box.getRowAt(e.clientX, e.clientY); 
           var node = tree.view.nodeForTreeIndex(row);            
           }
      var node = sidebar ? node : target._placesNode,
      id = node.itemId, uri = node.uri, button = e.button, type = e.type,            
      isFolder = PlacesUtils.nodeIsContainer(node), isURI = PlacesUtils.nodeIsURI(node);

      // двойной клик добавляет закладку или удаляет закладку, разделитель ....
      if ( button !== 1 && type == 'mouseup' ) {                 
           if ( button == 0 && func.flag == true && isFolder ) {
                addBookmark(node, false);
                sidebar && tree.view.toggleOpenState(row);               
                }
           
           if ( button == 2 && func.flag == true && !isFolder ) {                     
                setTimeout(function() { 
                   target.ownerDocument.getElementById("placesContext").hidePopup()
                   try { PlacesUtils.bookmarks.removeItem(id) } catch(e) {};                   
                }, 0); 
                }
                                
           func.flag = true;
           setTimeout(function() func.flag = false, 400 );
           }
           
      if ( isFolder ) return;                                // стоп, если папка закладок
      if ( button == 0 ) window.clearTimeout( func.timer );  // сбросить таймер длинного клика           

      // блокировать действие по умолчанию для клика и отжатия ....
      if ( button !== 2 && /click|mouseup/.test(type) ) { 
           e.preventDefault(); e.stopPropagation();
           }
      
      // левый длинный клик добавляет текущую вкладку в закладки под нажатой закладкой ....
      if ( button == 0 && type == 'mousedown' ) {                      
           func.loadBook = true;       
           func.timer = setTimeout(function() {
               func.loadBook = false;
               addBookmark(node.parent, id);
           }, 400 );  
           }
           
      // левый клик открывает закладку в новой или текущей вкладке ....      
      if ( button == 0 && type == 'mouseup' && func.loadBook && isURI ) {
           ( uri.startsWith("javascript") || current.indexOf(content.location.href) !== -1 || e.ctrlKey ) 
           ? gBrowser.loadURI( uri ) 
           : gBrowser.loadOneTab( uri, {relatedToCurrent: nextToCurrent, inBackground: background,
                                        referrerURI: null } );
           }       
    
      // средний клик открывает закладку в текущей вкладке ....
      if ( button == 1 && type == 'click' && isURI ) {             
           gBrowser.loadURI( uri );
           }           

      // автоматически закрыть все меню закладок при уходе курсора .... 
      var menu = target.parentNode;
      if ( !menuAutoClose || !menu || menu.localName !== 'menupopup' || type !== 'click' || button == 2 ) return;
                              
      menu.onmouseover = function() menu.f = true;
      menu.onmouseleave = function() { 
         menu.f = false;        
         setTimeout(function() {   
           if ( menu.f ) return;
           for ( var node = menu; node; node = node.parentNode )
                 node.nodeName == 'menupopup' && node.hidePopup();
           menu.onmouseleave = null;
         }, 500);    
      };
            
   };
   ["click", "dragstart", "mouseup", "mousedown"]
   .forEach(function(type) addEventListener(type, handleClick, true) );
   
   
   // добавить страницу в закладки в указанной папке ....
   function addBookmark(folder, id) {
      var title = gBrowser.mCurrentTab.label;
      var folderId = PlacesUtils.getConcreteItemId(folder);
      var index = id ? PlacesUtils.bookmarks.getItemIndex(id) + 1 : 0;
      var readOnlyFolder = PlacesUtils.nodeIsQuery(folder) ||
                           PlacesUtils.annotations.itemHasAnnotation(folderId, PlacesUtils.LMANNO_FEEDURI);
      if ( !readOnlyFolder )
           PlacesUtils.bookmarks.insertBookmark(folderId, gBrowser.currentURI, index, title);

      // всплывающая подсказка
      if ( id ) return;
      var al = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService);
      if ( readOnlyFolder ) {   
           al.showAlertNotification("chrome://global/skin/icons/error-16.png", folder.title, "Не поддерживается");
           return;
           }
      var icon = gBrowser.mCurrentTab.image || "chrome://global/skin/icons/information-16.png";
      al.showAlertNotification(icon, "Добавил в папку " + (folder.title || "(без заголовка)") + ":", title.slice(0, 100));
   };    
})();

Отредактировано bunda1 (11-07-2015 12:30:57)

Отсутствует

 

№5811-07-2015 12:44:11

becool
Участник
 
Группа: Members
Зарегистрирован: 30-08-2014
Сообщений: 268
UA: Firefox 39.0

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

bunda1, СКМ сделай пожалуйста открыть в новой фоновой вкладке.

Отсутствует

 

№5911-07-2015 12:47:52

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

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

becool пишет

bunda1, СКМ сделай пожалуйста открыть в новой фоновой вкладке.

Выделить код

Код:

// Управление закладками, от 25.10.2014. ................................ 
(function func() {
   // страницы где левый длинный клик открывает закладку в текущей странице
   var current = ["about:newtab", "about:blank", "chrome://browser/content/bookmarks/bookmarksPanel.xul"]; 
   
   const background = false;      // открывать закладку в фоновой вкладке
   const nextToCurrent = true;  // открывать закладку рядом с текущей вкладкой
   const menuAutoClose = true;   // автоматически закрыть меню закладок при уходе курсора
   
   function handleClick(e) { 
      var target = e.originalTarget;
      var sidebar = target.ownerDocument.defaultView.top !== content 
                    && target.id == 'bookmarks-view-children';
                    
      if ( !sidebar && !target._placesNode ) return; // стоп, если не закладка, папка, разделитель 

      // получить закладку, адрес, папку и id закладки, другие переменные
      if ( sidebar ) {
           var tree = target.parentNode;
           var box = tree.treeBoxObject;
           var row = box.getRowAt(e.clientX, e.clientY); 
           var node = tree.view.nodeForTreeIndex(row);            
           }
      var node = sidebar ? node : target._placesNode,
      id = node.itemId, uri = node.uri, button = e.button, type = e.type,            
      isFolder = PlacesUtils.nodeIsContainer(node), isURI = PlacesUtils.nodeIsURI(node);

      // двойной клик добавляет закладку или удаляет закладку, разделитель ....
      if ( button !== 1 && type == 'mouseup' ) {                 
           if ( button == 0 && func.flag == true && isFolder ) {
                addBookmark(node, false);
                sidebar && tree.view.toggleOpenState(row);               
                }
           
           if ( button == 2 && func.flag == true && !isFolder ) {                     
                setTimeout(function() { 
                   target.ownerDocument.getElementById("placesContext").hidePopup()
                   try { PlacesUtils.bookmarks.removeItem(id) } catch(e) {};                   
                }, 0); 
                }
                                
           func.flag = true;
           setTimeout(function() func.flag = false, 400 );
           }
           
      if ( isFolder ) return;                                // стоп, если папка закладок
      if ( button == 0 ) window.clearTimeout( func.timer );  // сбросить таймер длинного клика           

      // блокировать действие по умолчанию для клика и отжатия ....
      if ( button !== 2 && /click|mouseup/.test(type) ) { 
           e.preventDefault(); e.stopPropagation();
           }
      
      // левый длинный клик добавляет текущую вкладку в закладки под нажатой закладкой ....
      if ( button == 0 && type == 'mousedown' ) {                      
           func.loadBook = true;       
           func.timer = setTimeout(function() {
               func.loadBook = false;
               addBookmark(node.parent, id);
           }, 400 );  
           }
           
      // левый клик открывает закладку в новой или текущей вкладке ....      
      if ( button == 0 && type == 'mouseup' && func.loadBook && isURI ) {
           ( uri.startsWith("javascript") || current.indexOf(content.location.href) !== -1 || e.ctrlKey ) 
           ? gBrowser.loadURI( uri ) 
           : gBrowser.loadOneTab( uri, {relatedToCurrent: nextToCurrent, inBackground: background,
                                        referrerURI: null } );
           }       
    
      // средний клик открывает закладку в текущей вкладке ....
      if ( button == 1 && type == 'click' && isURI ) {             
           gBrowser.loadOneTab( uri, {relatedToCurrent: nextToCurrent, inBackground: true, referrerURI: null } );
           }           

      // автоматически закрыть все меню закладок при уходе курсора .... 
      var menu = target.parentNode;
      if ( !menuAutoClose || !menu || menu.localName !== 'menupopup' || type !== 'click' || button == 2 ) return;
                              
      menu.onmouseover = function() menu.f = true;
      menu.onmouseleave = function() { 
         menu.f = false;        
         setTimeout(function() {   
           if ( menu.f ) return;
           for ( var node = menu; node; node = node.parentNode )
                 node.nodeName == 'menupopup' && node.hidePopup();
           menu.onmouseleave = null;
         }, 500);    
      };
            
   };
   ["click", "dragstart", "mouseup", "mousedown"]
   .forEach(function(type) addEventListener(type, handleClick, true) );
   
   
   // добавить страницу в закладки в указанной папке ....
   function addBookmark(folder, id) {
      var title = gBrowser.mCurrentTab.label;
      var folderId = PlacesUtils.getConcreteItemId(folder);
      var index = id ? PlacesUtils.bookmarks.getItemIndex(id) + 1 : 0;
      var readOnlyFolder = PlacesUtils.nodeIsQuery(folder) ||
                           PlacesUtils.annotations.itemHasAnnotation(folderId, PlacesUtils.LMANNO_FEEDURI);
      if ( !readOnlyFolder )
           PlacesUtils.bookmarks.insertBookmark(folderId, gBrowser.currentURI, index, title);

      // всплывающая подсказка
      if ( id ) return;
      var al = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService);
      if ( readOnlyFolder ) {   
           al.showAlertNotification("chrome://global/skin/icons/error-16.png", folder.title, "Не поддерживается");
           return;
           }
      var icon = gBrowser.mCurrentTab.image || "chrome://global/skin/icons/information-16.png";
      al.showAlertNotification(icon, "Добавил в папку " + (folder.title || "(без заголовка)") + ":", title.slice(0, 100));
   };    
})();

Отсутствует

 

№6011-07-2015 12:57:57

becool
Участник
 
Группа: Members
Зарегистрирован: 30-08-2014
Сообщений: 268
UA: Firefox 39.0

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

const menuAutoClose = true;   // автоматически закрыть меню закладок при уходе курсора
Это для боковой пнели не работает?

Отсутствует

 

№6111-07-2015 12:59:40

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

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

becool пишет

const menuAutoClose = true;   // автоматически закрыть меню закладок при уходе курсора
Это для боковой пнели не работает?

Нет.

Отсутствует

 

№6211-07-2015 13:00:29

becool
Участник
 
Группа: Members
Зарегистрирован: 30-08-2014
Сообщений: 268
UA: Firefox 39.0

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

bunda1, большое спасибо!

Отсутствует

 

№6304-10-2016 12:04:57

ifln
Участник
 
Группа: Members
Зарегистрирован: 20-09-2013
Сообщений: 235
UA: Firefox 38.0

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

Отсутствует

 

№6409-10-2016 12:33:16

stluka
Участник
 
Группа: Members
Зарегистрирован: 27-09-2014
Сообщений: 15
UA: Seamonkey 2.40

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

Для [seamonkey] такую кнопку можно сделать?

Отсутствует

 

№6510-10-2016 19:31:28

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

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

stluka пишет

Для [seamonkey] такую кнопку можно сделать?

Выделить код

Код:

// Открывать закладки левым кликом в новой вкладке не закрывая меню закладок, от 03.09.2016. ................
function openBook(e, target = e.originalTarget) { 
   if ( target.localName !== "menuitem" || !(target._placesNode && PlacesUtils.nodeIsURI(target._placesNode) ) ) return;
               
   if ( e.button == 0 ) {         // если правый клик 
        e.preventDefault();
        e.stopPropagation();
         
        // открыть в новой или в текущей вкладке если это указанная вкладка ....
        var itemUri = target._placesNode.uri;
        var current = ["about:newtab", "about:blank", "chrome://browser/content/bookmarks/bookmarksPanel.xul"];
        ~current.indexOf(content.location.href) || e.ctrlKey ? gBrowser.loadURI(itemUri) : gBrowser.addTab(itemUri);

        setTimeout(()=> document.getElementById('placesContext').hidePopup(), 50);
        };
           

    // автоматически закрыть все меню закладок при уходе курсора .... 
    var menu = target.parentNode;
    if ( !menu || menu.localName !== 'menupopup' ) return;
                     
    menu.onmouseover =()=> menu.f = true;
    menu.onmouseleave =()=> { 
       menu.f = false;        
       setTimeout(()=> {   
          if ( menu.f ) return;
          for ( var node = menu; node; node = node.parentNode )
                node.nodeName == 'menupopup' && node.hidePopup();
          menu.onmouseleave = null;
       }, 500);    
    };        
}
!this.hasAttribute("initialized") && addEventListener("mouseup", openBook, true);

Отсутствует

 

№6611-10-2016 06:20:21

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

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

Можно ли сделать так, чтобы закладка, у которой чекбокс "Открывать в боковой панели" установлен, открывалась бы в боковой панели?


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

Отсутствует

 

№6711-10-2016 15:49:14

stluka
Участник
 
Группа: Members
Зарегистрирован: 27-09-2014
Сообщений: 15
UA: Seamonkey 2.40

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

bunda1 спасибо за ответ. НО ...

Вставил код в раздел /*Initialization Code*/ новой кнопки. Вытянул кнопку на панель. Жму ЛКМ  не реагирует, СКМ не реагирует, ПКМ выпадает меню для редактирования, удаления и т.д. для кнопки.

Отсутствует

 

№6811-10-2016 20:34:21

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

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

stluka пишет

Вставил код в раздел /*Initialization Code*/ новой кнопки. Вытянул кнопку на панель. Жму ЛКМ  не реагирует, СКМ не реагирует, ПКМ выпадает меню для редактирования, удаления и т.д. для кнопки.

Ну так и задумано, кнопка и не должна реагировать на ЛКМ и СКМ. Мой код дает возможность открывать левым кликом закладки в новой вкладке не закрывая меню закладок, если папка с закладками находится на панели закладок или в меню закладкок. Если нажать Ctrl левый клик откроет закладку в текущей вкладке и меню закроется. Меню автоматически закроется при уходе курсора с меню.

Отсутствует

 

№6912-10-2016 09:22:06

stluka
Участник
 
Группа: Members
Зарегистрирован: 27-09-2014
Сообщений: 15
UA: Seamonkey 2.40

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

bunda1 пишет

Ну так и задумано

Понял, спасибо.

Отсутствует

 

№7019-03-2017 19:10:30

becool
Участник
 
Группа: Members
Зарегистрирован: 30-08-2014
Сообщений: 268
UA: Firefox 52.0

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

bunda1, сделай, пожалуйста, актуальный вариант кода, чтоб вместо ЛКМ было СКМ.

Отредактировано becool (20-03-2017 18:04:59)

Отсутствует

 

№7120-03-2017 22:49:45

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

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

becool пишет

bunda1, сделай, пожалуйста, актуальный вариант кода, чтоб вместо ЛКМ было СКМ.

Выделить код

Код:

// Открывать закладки левым кликом в новой вкладке не закрывая меню закладок, от 11.10.2016. ................
function openBook(e, target = e.originalTarget) { 
   if ( target.localName !== "menuitem" || !(target._placesNode && PlacesUtils.nodeIsURI(target._placesNode) ) ) return;

   if ( e.button == 1 ) {        // ЛКМ 
        e.preventDefault();
        e.stopPropagation();
         
        // открыть в новой или в текущей вкладке если это указанная вкладка ....
        var itemUri = target._placesNode.uri;
        var current = ["about:newtab", "about:blank", "chrome://browser/content/bookmarks/bookmarksPanel.xul"];
        ~current.indexOf(content.location.href) || e.ctrlKey ? gBrowser.loadURI(itemUri) : gBrowser.addTab(itemUri);

        setTimeout(()=> document.getElementById('placesContext').hidePopup(), 50);
        };
           

    // автоматически закрыть все меню закладок при уходе курсора .... 
    var menu = target.parentNode;
    if ( !menu || menu.localName !== 'menupopup' ) return;
                     
    menu.onmouseover =()=> menu.f = true;
    menu.onmouseleave =()=> { 
       menu.f = false;        
       setTimeout(()=> {   
          if ( menu.f ) return;
          for ( var node = menu; node; node = node.parentNode )
                node.nodeName == 'menupopup' && node.hidePopup();
          menu.onmouseleave = null;
       }, 500);    
    };        
}
!this.hasAttribute("initialized") && addEventListener("click", openBook, true);

Отсутствует

 

№7221-03-2017 06:49:52

becool
Участник
 
Группа: Members
Зарегистрирован: 30-08-2014
Сообщений: 268
UA: Firefox 52.0

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

bunda1, премного благоарен! good2.gif

Отсутствует

 

№7326-03-2017 10:49:08

becool
Участник
 
Группа: Members
Зарегистрирован: 30-08-2014
Сообщений: 268
UA: Firefox 52.0

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

bunda1, небольшая проблемка: например, я хочу удалить закладку, ПКМ по закладке вызывает контекстное меню закладки, при наведении мыши на "удалить", все меню закладок изчезает.

Отредактировано becool (26-03-2017 10:49:21)

Отсутствует

 

№7427-03-2017 20:44:04

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

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

becool пишет

bunda1, небольшая проблемка: например, я хочу удалить закладку, ПКМ по закладке вызывает контекстное меню закладки, при наведении мыши на "удалить", все меню закладок изчезает.

Выделить код

Код:

// Открывать закладки средным кликом в новой вкладке не закрывая меню закладок, от 27.03.2017. ................
function openBook(e, target = e.originalTarget) { 
   if ( target.localName !== "menuitem" || !(target._placesNode && PlacesUtils.nodeIsURI(target._placesNode) ) ) return;

   if ( e.button == 1 && e.type == 'click' ) {        // ЛКМ 
        e.preventDefault();
        e.stopPropagation();
         
        // открыть в новой или в текущей вкладке если это указанная вкладка ....
        var itemUri = target._placesNode.uri;
        var current = ["about:newtab", "about:blank", "chrome://browser/content/bookmarks/bookmarksPanel.xul"];
        ~current.indexOf(content.location.href) || e.ctrlKey ? gBrowser.loadURI(itemUri) : gBrowser.addTab(itemUri);

        setTimeout(()=> document.getElementById('placesContext').hidePopup(), 50);
        };
           

    // автоматически закрыть все меню закладок при уходе курсора .... 
    var menu = target.parentNode;
    if ( !menu || menu.localName !== 'menupopup' || e.type !== 'click' || e.button == 2 ) return;
                     
    menu.onmouseover =()=> menu.f = true;
    menu.onmouseleave =()=> { 
       menu.f = false;        
       setTimeout(()=> { 
          if ( menu.f ) return;
          for ( var node = menu; node; node = node.parentNode )
                node.nodeName == 'menupopup' && node.hidePopup();
          menu.onmouseleave = null;
       }, 500);    
    };
}
!this.hasAttribute("initialized") && ["click", "mouseup"].forEach(type=> addEventListener(type, openBook, true) );

Отсутствует

 

№7527-03-2017 23:23:16

becool
Участник
 
Группа: Members
Зарегистрирован: 30-08-2014
Сообщений: 268
UA: Firefox 52.0

Re: [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

bunda1, теперь порядок, спасибо!

Отсутствует

 
  • Форумы
  •  » Сustom Buttons
  •  » [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

Board footer

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