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

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.
  • Форумы
  •  » Сustom Buttons
  •  » [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню

№109-10-2012 21:15:48

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

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

Открывать закладки левым кликом в новой вкладке не закрывая меню закладок(Firefox 24 +)
Автор: bunda1
Версия: от 11.10.2016.
Описание: Kод дает возможность открывать левым кликом закладки в новой вкладке не закрывая меню закладок, если папка с закладками находится на панели закладок или в меню закладкок.
Если нажать Ctrl левый клик откроет закладку в текущей вкладке и меню закроется.
Меню автоматически закроется при уходе курсора с меню.

В строке кода:

Выделить код

Код:

var current = ["about:newtab", "about:blank", "chrome://browser/content/bookmarks/bookmarksPanel.xul"];

можно указать адреса страниц где левый клик откроет закладку в текущей вкладке

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

Выделить код

Код:

// Открывать закладки левым кликом в новой вкладке не закрывая меню закладок, от 11.10.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);

Отредактировано bunda1 (05-03-2013 23:09:44)

Отсутствует

 

№218-10-2012 15:33:06

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

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

bunda1
Спасибо, замечательная кнопка. Даёт возможность отказаться от Stay-Open Menu. Вот только, если можешь добавь открытие закладки в текущей вкладке, например с Ctrl+ЛКМ

Отсутствует

 

№319-10-2012 20:13:19

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

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

voqabuhe пишет:

Спасибо, замечательная кнопка. Даёт возможность отказаться от Stay-Open Menu. Вот только, если можешь добавь открытие закладки в текущей вкладке, например с Ctrl+ЛКМ

09-10-2012 20:15:48

Отредактировано bunda1 (19-10-2012 20:36:23)

Отсутствует

 

№419-10-2012 21:04:31

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

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

bunda1
О, спасибо теперь просто супер, но для полного счастья, как сделать, чтобы после открытия в текущей вкладке меню тоже не закрывалось?

Отсутствует

 

№519-10-2012 21:19:45

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

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

voqabuhe пишет:

О, спасибо теперь просто супер, но для полного счастья, как сделать, чтобы после открытия в текущей вкладке меню тоже не закрывалось?

:( Не получается. Попробую открыть закладку в текущей вкладке двойным левым кликом.

Отредактировано bunda1 (19-10-2012 21:20:36)

Отсутствует

 

№619-10-2012 21:30:09

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

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

bunda1 пишет:

Не получается. Попробую открыть закладку в текущей вкладке двойным левым кликом.

А если СКМ?

Отсутствует

 

№720-10-2012 00:27:37

Пандёнок
Участник
 
Группа: Extensions
Откуда: chrome://newtab
Зарегистрирован: 04-11-2008
Сообщений: 4472
UA: Yandex 1.0
Веб-сайт

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

voqabuhe
Лучше не приучать себя к открытию через СКМ: ведь эта кнопка в ряде браузеров закрывает вкладки.


Переводы расширений.

Отсутствует

 

№820-10-2012 13:45:40

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

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

Открывать закладки левым кликом в новой вкладке не закрывая меню закладок +(Firefox 10 +)
Автор: bunda1
Описание: Kод дает возможность открывать левым кликом закладки в новой вкладке или удалять закладки средним кликом на закладке не закрывая меню закладок, если папка с закладками находится на панели закладок или в меню закладкок. Меню автоматически закроется при уходе курсора с меню.
Если адрес текущей страницы about:newtab, about:blank, chrome://browser/content/bookmarks/bookmarksPanel.xul левый клик откроет закладку в текущей вкладке.
Если нажать Ctrl левый клик откроет закладку в текущей вкладке и меню закроется.

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

Выделить код

Код:

/* Открывать закладки левым кликом в новой вкладке не закрывая меню закладок
   удалять закладки средним кликом на закладке .............................*/
function openRemoveBook(aEvent) { 
   
    var target = aEvent.originalTarget;
        
    // стоп, если не левый клик и закладка из меню закладок ....
    if ( target.localName !== "menuitem" || !(target._placesNode && PlacesUtils.nodeIsURI(target._placesNode) ) ) return;
               
         var bookMenu = target.parentNode;
        
         // стоп, если не левый клик и закладка из меню закладок ....
         if ( target.localName !== "menuitem" || !(target._placesNode && PlacesUtils.nodeIsURI(target._placesNode) ) ) return;
               
         // если левый клик ....    
         if ( aEvent.button == 0) {
              aEvent.preventDefault();
              aEvent.stopPropagation();
         
              // открыть в новой или в текущей вкладке если это указанная вкладка ....
              var itemUri = target._placesNode.uri; // получить адрес закладки 
              var current = ["about:newtab", "about:blank", "chrome://browser/content/bookmarks/bookmarksPanel.xul"];
              (current.indexOf(content.location.href) !== -1 || aEvent.ctrlKey)? gBrowser.loadURI( itemUri ): gBrowser.addTab( itemUri );
              };
       
         // если средний клик ....    
         if ( aEvent.button == 1) {
              aEvent.preventDefault();
              aEvent.stopPropagation();
              
              // удалить закладку ....
              var itemId = target._placesNode.itemId;
              PlacesUtils.bookmarks.removeItem(itemId);
              };
          
         // блокировать повторный запуск обработчика при открытии несколько закладок из одного меню закладок ....
         if ( this.stopListener ) return;
             this.stopListener = true;
              
         // обработчик закрывает меню при ухода мыши с меню и удаляет себя ....
         window.addEventListener('mouseover', function(event) { 
         var name = event.target.nodeName; 
         if  ( name == 'menu' || name == 'menupopup' || name == 'menuitem' || name == 'menuseparator') return;
               setTimeout(function() { bookMenu.hidePopup() }, 400); // закрыть меню через 400 ms
               window.removeEventListener("mouseover", arguments.callee, false);
               this.stopListener = false; // удалить флаг
         }, false);                
}
window.addEventListener("mouseup", openRemoveBook, false);

this.onDestroy = function() {
    window.removeEventListener("mouseup", openRemoveBook,  false);
};

Отредактировано bunda1 (20-10-2012 17:04:50)

Отсутствует

 

№920-10-2012 20:00:07

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

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

А вариант с удалением закладок по Ctrl+СКМ будет?

Отсутствует

 

№1020-10-2012 20:27:44

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

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

voqabuhe пишет:

А вариант с удалением закладок по Ctrl+СКМ будет?

вариант с удалением закладок по Ctrl+СКМ

Выделить код

Код:

/* Открывать закладки левым кликом в новой вкладке не закрывая меню закладок
   удалять закладки Ctrl+ средним кликом на закладке .............................*/
function openRemoveBook(aEvent) { 
   
    var target = aEvent.originalTarget;
        
    // стоп, если не закладка из меню закладок ....
    if ( target.localName !== "menuitem" || !(target._placesNode && PlacesUtils.nodeIsURI(target._placesNode) ) ) return;
               
         var target = aEvent.originalTarget;
         var bookMenu = target.parentNode;
        
         // стоп, если не левый клик и закладка из меню закладок ....
         if ( target.localName !== "menuitem" || !(target._placesNode && PlacesUtils.nodeIsURI(target._placesNode) ) ) return;
               
         // если левый клик ....    
         if ( aEvent.button == 0) {
              aEvent.preventDefault();
              aEvent.stopPropagation();
         
              // открыть в новой или в текущей вкладке если это указанная вкладка ....
              var itemUri = target._placesNode.uri; // получить адрес закладки 
              var current = ["about:newtab", "about:blank", "chrome://browser/content/bookmarks/bookmarksPanel.xul"];
              (current.indexOf(content.location.href) !== -1 || aEvent.ctrlKey)? gBrowser.loadURI( itemUri ): gBrowser.addTab( itemUri );
              };
       
         // если Ctrl+ средний клик ....    
         if ( aEvent.ctrlKey && !aEvent.shiftKey && !aEvent.altKey && !aEvent.metaKey && aEvent.button == 1 ) {
              aEvent.preventDefault();
              aEvent.stopPropagation();
              
              // удалить закладку ....
              var itemId = target._placesNode.itemId;
              PlacesUtils.bookmarks.removeItem(itemId);
              };
          
         // блокировать повторный запуск обработчика при открытии несколько закладок из одного меню закладок ....
         if ( this.stopListener ) return;
             this.stopListener = true;
              
         // обработчик закрывает меню при ухода мыши с меню и удаляет себя ....
         window.addEventListener('mouseover', function(event) { 
         var name = event.target.nodeName; 
         if  ( name == 'menu' || name == 'menupopup' || name == 'menuitem' || name == 'menuseparator') return;
               setTimeout(function() { bookMenu.hidePopup() }, 400); // закрыть меню через 400 ms
               window.removeEventListener("mouseover", arguments.callee, false);
               this.stopListener = false; // удалить флаг
         }, false);                
}
window.addEventListener("mouseup", openRemoveBook, false);

this.onDestroy = function() {
    window.removeEventListener("mouseup", openRemoveBook,  false);
};

Отредактировано bunda1 (20-10-2012 20:29:32)

Отсутствует

 

№1120-10-2012 21:36:12

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

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

bunda1
Спасибо.:beer: Конечно СКМ удалять удобней, но не для тех, кто привык так открывать закладки, я так десятка два закладок по удалял.:dumb: А с Ctrl+СКМ вполне безопасно.

Отсутствует

 

№1227-10-2012 15:38:15

2k1dmg
Участник
 
Группа: Members
Зарегистрирован: 06-04-2011
Сообщений: 190
UA: Firefox 19.0

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

Открывать/удалять закладки средним кликом не закрывая меню закладок

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

  • Middle Click = Открыть закладку в фоновой вкладке
  • Shift + Middle Click = Открыть закладку в активной вкладке
  • Ctrl + Middle Click = Действие по умолчанию для СКМ  ([about:config - browser.tabs.loadBookmarksInBackground;false] - открыть закладку в активной вкладке и закрыть меню)
  • Ctrl + Shift + Middle Click = Удалить закладку

Выделить код

Код:

function openBookMC(e) {
    if ( e.target.localName !== 'menuitem' ) return;
    if ( e.button == 1 && !e.ctrlKey && !e.shiftKey )  {
        e.stopPropagation();    
        openUILinkIn( e.originalTarget._placesNode.uri, "tabshifted" );       
    }; 
    if ( e.button == 1 && !e.ctrlKey && e.shiftKey )  {
        e.stopPropagation();
        openUILinkIn( e.originalTarget._placesNode.uri, "tab" );       
    };
    if ( e.button == 1 && e.ctrlKey && e.shiftKey )  {
        e.stopPropagation();
        PlacesUtils.bookmarks.removeItem( e.originalTarget._placesNode.itemId );           
    };    
};
window.addEventListener("click", openBookMC, true);

this.onDestroy = function() {
    window.removeEventListener("click", openBookMC, true);
};


v2

Выделить код

Код:

function openBookMC(e) {
    if ( e.target.localName == 'menuitem' ) {
        if ( e.target.getAttribute("scheme") != 'javascript' ) {
            if ( e.button == 1 && !e.ctrlKey && !e.shiftKey ) {
                    e.stopPropagation();
                   openUILinkIn( e.target._placesNode.uri, "tabshifted" );    
            } 
            if ( e.button == 1 && !e.ctrlKey && e.shiftKey ) {
                    e.stopPropagation();
                    openUILinkIn( e.target._placesNode.uri, "tab" );       
            }
        }
        if ( e.button == 1 && e.ctrlKey && e.shiftKey ) {
            e.stopPropagation();
            PlacesUtils.bookmarks.removeItem( e.target._placesNode.itemId );      
        }
    }
}

var popUpMenus = ["PlacesToolbar","bookmarks-menu-button","appmenu_bookmarksPopup","appmenu_historyMenupopup","bookmarksMenu","history-menu"];

for ( var i = 0; i < popUpMenus.length; i++ ) {
    var mItiemPopup = document.getElementById( popUpMenus[i] );
    mItiemPopup.addEventListener( "click", openBookMC, true );        
}

this.onDestroy = function() {
    for ( var i = 0; i < popUpMenus.length; i++ ) {
        var mItiemPopup = document.getElementById( popUpMenus[i] );
        mItiemPopup.removeEventListener( "click", openBookMC, true );    
    }
};

Отредактировано 2k1dmg (05-11-2012 17:06:59)

Отсутствует

 

№1327-10-2012 16:51:28

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

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

Открывать закладки левым кликом в новой вкладке не закрывая меню закладок + 2( Firefox 10 + )
Автор: bunda1
Версия: от 02.05.2013.
Описание: Kод даёт возможность:
1. открывать закладки левым кликом в новой вкладке,
2. открывать закладки средним кликом в текущей вкладке,
3. удалять закладки двойным правым кликом на закладке не закрывая меню закладок.
Код работает для папок с закладками которые находятся на панели закладок или в меню закладок.

Меню закладок автоматически закроется при уходе курсора с меню, это можно отключить если в начале кода переключить переменную: autoClose на false.

Если адрес текущей страницы about:newtab, about:blank, chrome://browser/content/bookmarks/bookmarksPanel.xul левый клик откроет закладку в текущей вкладке.
Если нажать Ctrl левый клик откроет закладку в текущей вкладке и меню закроется.

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

Код инициализации:

Выделить код

Код:

/* Открывать закладки левым кликом в новой вкладке или открывать закладки средним кликом на закладке не закрывая меню закладок
   или двойным правым кликом удалять закладки от 02.05.2013. */
function openOrRemoveBook(e) {
    
    var type = e.type;
    var target = e.originalTarget;
    var bookMenu = target.parentNode;
        
    // стоп, если не закладка из меню закладок .... 
    if ( target.localName !== "menuitem" || !target._placesNode ) return;
    
         var autoClose = true; // true => автоматически закрывать меню закладок
            
         // если левый клик открыть закладку в новой или в текущей вкладке если это указанная вкладка ....    
         if ( type == 'mouseup' && e.button == 0 ) {
              e.preventDefault();
              e.stopPropagation();
              var itemUri = target._placesNode.uri; // получить адрес закладки
              var bookmarklet = ( itemUri.substr(0, 11) == "javascript:"); 
              var current = ["about:newtab", "about:blank", "chrome://browser/content/bookmarks/bookmarksPanel.xul"];
              ( bookmarklet || current.indexOf(content.location.href) !== -1 || e.ctrlKey ) ? gBrowser.loadURI( itemUri ) : gBrowser.addTab( itemUri );
              };
       
         // если средний клик открыть закладку в текущей ....    
         if ( type == 'click' && e.button == 1 ) {
              e.stopPropagation();
              gBrowser.loadURI( target._placesNode.uri )
              };
              
         // если это двойной правый клик удалить закладку и закрыть контекстное меню ......
         if ( type == 'mouseup' && e.button == 2 ) {
              if ( bookMenu.open == true ) {
                   e.preventDefault();
                   setTimeout(function() { document.getElementById("placesContext").hidePopup() }, 0);
                   try { PlacesUtils.bookmarks.removeItem( target._placesNode.itemId )}
                   catch(e) { };                  
                   }
              bookMenu.open = true;
              setTimeout(function() { bookMenu.open = false }, 400); // сбросить флаг по таймеру
              };
         
        // автоматически закрыть все меню закладок при уходе курсора .... 
        if ( !autoClose ) return;    
        
        if ( bookMenu.stopListener ) return; // блокировать повторный запуск обработчика для текущего меню закладок
             bookMenu.stopListener = true;    
       
        // обработчик закрывает меню при ухода мыши с меню и удаляет себя
        addEventListener("mouseover", function close(e) { 
           if ( !/menu/.test( e.originalTarget.nodeName ) ) { 
                clearTimeout( bookMenu.timer );
                bookMenu.timer = setTimeout(function() {
                   removeEventListener("mouseover", close, false, window );                  
                   bookMenu.stopListener = false; // отключить блокировку запуска                    

                   for ( var node = bookMenu; node; node = node.parentNode ) {
                         if ( node.nodeName == 'menupopup' ) node.hidePopup(); // закрыть все меню закладок
                         }    
                   
                   }, 700 ); // закрыть меню через 700 ms
                }
            else clearTimeout( bookMenu.timer );              
                
        }, false );       
};               
addEventListener("mouseup", openOrRemoveBook, true, window );
addEventListener("click", openOrRemoveBook, true, window ); 


За помощь в создании кода спасибо 2k1dmg и Dumby

Отредактировано bunda1 (02-05-2013 22:18:27)

Отсутствует

 

№1404-11-2012 13:29:42

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

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

bunda1
С этой кнопкой перестают работать практически все Bookmarklet

Отсутствует

 

№1504-11-2012 15:26:08

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

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

voqabuhe пишет:

С этой кнопкой перестают работать практически все Bookmarklet

Ой, я про это не подумал.
Буду исправлять.

Отсутствует

 

№1604-11-2012 22:42:59

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

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

bunda1
Спасибо, теперь всё ОК, просто высший класс:beer:

Отсутствует

 

№1710-11-2012 02:51:46

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

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

bunda1
После открытия редактора кнопки её производительность увеличивается в три раза. :) т.е открывает по ПКМ сразу три вкладки

Добавлено 10-11-2012 02:56:02
зы Первый клик после закрытия редактора срабатывает нормально, а потом начинает троить.

Отредактировано voqabuhe (10-11-2012 02:56:02)

Отсутствует

 

№1810-11-2012 08:59:15

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 675
UA: Firefox 10.0

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

voqabuhe

Просто опечатка. Там, в самом конце кода,
вместо removeBook должно быть openOrRemoveBook

Отсутствует

 

№1910-11-2012 12:05:37

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

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

Dumby
А, спасибо.

Отсутствует

 

№2028-02-2013 23:38:17

mettis
Участник
 
Группа: Members
Зарегистрирован: 28-02-2013
Сообщений: 5
UA: Seamonkey 2.16

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

А почему после открытия из Закладок открывается 2 одинаковые ссылки?

Отсутствует

 

№2101-03-2013 00:49:27

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

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

mettis пишет:

А почему после открытия из Закладок открывается 2 одинаковые ссылки?

С которым кодом проблема ?

Отсутствует

 

№2201-03-2013 14:07:14

mettis
Участник
 
Группа: Members
Зарегистрирован: 28-02-2013
Сообщений: 5
UA: Seamonkey 2.16

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

bunda1 пишет:

mettis пишет: А почему после открытия из Закладок открывается 2 одинаковые ссылки?С которым кодом проблема ?

Открывать закладки левым кликом в новой вкладке не закрывая меню закладок + 2(Firefox 10 +)

Отсутствует

 

№2301-03-2013 22:27:08

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

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

mettis
B коде есть ошибки, буду исправлять.

Отредактировано bunda1 (01-03-2013 22:28:19)

Отсутствует

 

№2405-03-2013 10:27:34

questman
Участник
 
Группа: Members
Зарегистрирован: 05-11-2011
Сообщений: 181
UA: Firefox 19.0

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

А можно просто чтобы меню не закрывалось?
Кнопки мыши оставить по умолчанию.
А меню закрывалось только по клику либо по странице либо по другим элементам интерфейса браузера.

Отсутствует

 

№2505-03-2013 23:08:35

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

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

questman пишет:

А можно просто чтобы меню не закрывалось?
Кнопки мыши оставить по умолчанию.
А меню закрывалось только по клику либо по странице либо по другим элементам интерфейса браузера.

Выделить код

Код:

/* Открывать закладки левым кликом в новой вкладке или открывать закладки средним кликом на закладке не закрывая меню закладок
   или двойным правым кликом удалять закладки от 20.04.2013. */
function openOrRemoveBook(e) {
   
    var type = e.type;
    var target = e.originalTarget;
    var bookMenu = target.parentNode;
    
    // стоп, если не закладка из меню закладок .... 
    if ( target.localName !== "menuitem" || !target._placesNode ) return;
            
         // если левый клик открыть закладку в новой или в текущей вкладке если это указанная вкладка ....    
         if ( type == 'mouseup' && e.button == 0 ) {
              e.preventDefault();
              e.stopPropagation();
              var itemUri = target._placesNode.uri; // получить адрес закладки
              var bookmarklet = ( itemUri.substr(0, 11) == "javascript:"); 
              var current = ["about:newtab", "about:blank", "chrome://browser/content/bookmarks/bookmarksPanel.xul"];
              ( bookmarklet || current.indexOf(content.location.href) !== -1 || e.ctrlKey ) ? gBrowser.loadURI( itemUri ) : gBrowser.addTab( itemUri );
              };
       
         // если средний клик открыть закладку в текущей ....    
         if ( type == 'click' && e.button == 1 ) {
              e.stopPropagation();
              gBrowser.loadURI( target._placesNode.uri )
              };
              
         // если это двойной правый клик удалить закладку и закрыть контекстное меню ......
         if ( type == 'mouseup' && e.button == 2 ) {
              if ( bookMenu.open == true ) {
                   e.preventDefault();
                   setTimeout(function() { document.getElementById("placesContext").hidePopup() }, 0);                   
                   PlacesUtils.bookmarks.removeItem( target._placesNode.itemId );
                   }
              bookMenu.open = true;
              setTimeout(function() { bookMenu.open = false }, 400); // сбросить флаг по таймеру
              };
         
 };               
addEventListener("mouseup", openOrRemoveBook, true, window );
addEventListener("click", openOrRemoveBook, true, window ); 

Отредактировано bunda1 (30-04-2013 22:01:54)

Отсутствует

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

Board footer

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