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

Юристы зарабатывают огромные деньги и славу, оперируя хорошим знанием законов. Правила форума — простой путь к успешному общению.

№119-03-2013 21:20:37

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

[CB]Открывать последнюю папку библиотеки

Открывать последнюю папку библиотеки(Firefox 3.6 +)
Автор: Dumby
Описание: Kод после открытия окошка библиотеки открывает в библиотеке папку которая была открыта перед закрытием библиотеки.
Использование: создайте новую Custom Buttons кнопку и положите код в инициализацию. Можно положить код в уже существующую кнопку, но если в кнопке уже есть другие коды у которых есть this.onDestroy = function() {.. то надо поставить в начале кнопки вот этот код

Выделить код

Код:

const pn = "CB.lastUsedLibraryFolder";
var prefs = Application.prefs;
if (!prefs.has(pn)) prefs.setValue(pn, "");
var pref = prefs.get(pn);

const url = "chrome://browser/content/places/places.xul";
var observer = {

    observe: function(win) {
        win.addEventListener("load", this, false);
    },
    handleEvent: function(e) {

        var doc = e.target;
        var win = doc.defaultView;
        
        if (e.type == "unload") {
            pref.value = win.PlacesOrganizer.location;
            return;
        }
        win.removeEventListener("load", this, false);
        if (doc.location.href != url) return;
        win.addEventListener("unload", this, false);
        setTimeout(function() {
            if (pref.value) win.PlacesOrganizer.location = pref.value;
            win.PlacesOrganizer._places.focus();
        }, 100);
    }
}
Services.obs.addObserver(observer, "domwindowopened", false);

this.onDestroy = function(reason) {
    try {
        Services.obs.removeObserver(observer, "domwindowopened");
    } catch (ex) {}
    if (reason == "delete") pref.reset();
};

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

Отсутствует

 

№229-03-2013 12:41:31

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

Re: [CB]Открывать последнюю папку библиотеки

Открывать библиотеку в вкладке и последнюю активную папку библиотеки(Firefox 24+)
Автор: Dumby, bunda1
Версия: от 23.06.2016.
Описание: Kод открывает библиотеку как активную вкладку рядом с текущей вкладкой и открывает в библиотеке:
1. папку закладок которая была открыта перед закрытием библиотеки, если в главном меню или в меню кнопки меню вы нажали Показать все закладки
2. Загрузки или Неподшитые закладки если в главном меню или в меню кнопки меню вы нажали эти пункты,
3. первую папку истории( Сегодня ) отсортированную по адресу если в главном меню или в меню кнопки меню вы нажали Показать весь журнал, в коде можно отключить сортировку по адресу и указать другую папку истории для открытия.

Если хотите установить иконку для вкладки библиотеки:
в userChrome.css:

Выделить код

Код:

/* библиотека */
.tabbrowser-tab[label="Библиотека"] .tab-icon-image {
 list-style-image:url("chrome://browser/skin/places/allBookmarks.png")!important; 
 -moz-image-region: auto !important; 
}


Если хотите открывать библиотеку жестами мыши или CB кнопкой:
Для Показать весь журнал используйте:

Выделить код

Код:

document.getElementById('menu_showAllHistory').click();

Для Показать все закладки используйте:

Выделить код

Код:

document.getElementById('bookmarksShowAll').click();

Для Загрузки или Показать все загрузки используйте:

Выделить код

Код:

document.getElementById("menu_openDownloads").doCommand();

Для Неподшитые закладки(отсутствует в Firefox47+) используйте:

Выделить код

Код:

document.getElementById("menu_unsortedBookmarks").doCommand();

Для Другие закладки используйте:

Выделить код

Код:

document.getElementById("panelMenu_unsortedBookmarks").doCommand();


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

Выделить код

Код:

// Открывать библиотеку в вкладке и последнюю активную папку библиотеки, от 23.06.2016. ...................
((id, pn, library)=> {
   var folderNumber = 1;         // папка истории которую откроет код
   var sortHistoryFolder = true; // сортировать папку истории которую откроет код
      
 
   // Перехватывать открытие библиотеки и открывать её в вкладке рядом с текущей ....
   function libraryInTab(e) {   
      id = e.originalTarget.id || e.target.id;
      if ( id == 'downloads-button' && e.target.id == 'PanelUI-multiView' ) id = 'Tools:Downloads';
      if ( e.target.id == 'downloadsPanel-multiView' && e.originalTarget.id == '' ) id = '';

      if ( (id == '') || 'Browser:ShowAllHistory, appmenu_history, PanelUI-historyMore,\
                          Tools:Downloads, downloadsHistory, downloadsPanel-multiView,\
                          Browser:ShowAllBookmarks, appmenu_bookmarks, appmenu_unsortedBookmarks,\
                          menu_unsortedBookmarks, panelMenu_unsortedBookmarks, panelMenu_bookmarksToolbar'
                          .indexOf(id) == -1 ) return; 
      e.stopPropagation();
      
      // закрыть меню большой кнопки меню и кнопки загрузок  
      setTimeout(()=> {
         try { document.getElementById("appmenu-popup").hidePopup() } catch(e) {}; 
         try { document.getElementById("downloadsPanel").hidePopup() } catch(e) {}; 
      }, 10);

      // закрыть все вкладки библиотеки кроме первой вкладки
      var libTab = null;
      [...gBrowser.tabs].forEach(tab=> { 
         if ( tab.linkedBrowser.currentURI.spec !== library ) return;
         !libTab ? libTab = tab : gBrowser.removeTab(tab);
      });
   
      // переместить или открыть библиотеку рядом с текущей вкладкой
      var selTab = gBrowser.selectedTab;
      if ( libTab !== selTab ) {
           if ( libTab && gBrowser.visibleTabs.indexOf(libTab) == -1 )
                TabView.moveTabTo(libTab, TabView._window.GroupItems._activeGroupItem.id);
           libTab = libTab || gBrowser.addTab(library);          
           var pos = selTab._tPos + (libTab._tPos > selTab._tPos);
           gBrowser.moveTabTo(libTab, pos);
           gBrowser.selectedTab = libTab;
           
           // если уже открытая библиотека была перемещена
           if ( !libTab.hasAttribute('busy') ) openLastUsedFolder();                          
           }
       else       
           openLastUsedFolder();  // если библиотека уже была в текущей вкладке      
   };
   addEventListener('command', libraryInTab, true, window);
   var pane = document.getElementById('appmenuSecondaryPane');  // для меню большой кнопки меню 
   pane && addEventListener('click', e=>{ e.target.nodeName == 'splitmenu' && libraryInTab(e) }, true, pane);
   

   // Открывать и запоминать последнюю активную папку если библиотека открыта как вкладка ....
   function openLastUsedFolder(e) {
      var view = e ? e.target.defaultView : content.document.defaultView;
      if ( view.location != library ) return;

      // получить адрес нужный папки
      try { var loc = cbu.getPrefs(pn) } catch(e) { loc = '' }; 
      if ( /downloads|Downloads/.test(id) ) loc = 'place:transition=7&sort=4';
      if ( /Toolbar/.test(id) ) loc = 'place:folder=TOOLBAR&excludeItems=1&expandQueries=0';
      if ( /Unfiled|unsorted/.test(id) ) loc = 'place:folder=UNFILED_BOOKMARKS&excludeItems=1&expandQueries=0';

      // открыть нужную папку   
      if ( /AllHistory|history/.test(id) ) { // если Показать весь журнал
           var doc = view.document;    
           
           var pWiew = doc.getElementById('placesList').view;                  
           pWiew && pWiew.selection.select(folderNumber);    // открыть папку с указанным номером
                 
           // сортировать папку истории по адресу
           if ( sortHistoryFolder && pWiew ) {                  
                doc.getElementById('viewMenu').open = true;
                doc.getElementById('viewSort').open = true;
                doc.getElementById('viewMenu').open = false;
                doc.getElementById('menucol_placesContentUrl').doCommand();
                }
            }
        else  
            {        
            view.PlacesOrganizer.location = loc;  // открыть папку с указанным адресом
            view.PlacesOrganizer._places.focus(); 
            }                       
      
      // запоминать последнюю папку при закрытии библиотеки
      e && view.addEventListener("unload", function f(e) {      
         view.removeEventListener(e.type, f);
          
         var loc = view.PlacesOrganizer.location;
         /place:folder|place:sort/.test(loc) && !/UNFILED|Toolbar/.test(loc) && cbu.setPrefs(pn, loc);                
      });
   };
   addEventListener("pageshow", openLastUsedFolder);
   
})('', 'CB.lastUsedLibraryFolder', 'chrome://browser/content/places/places.xul');

Отредактировано bunda1 (05-11-2014 22:47:41)

Отсутствует

 

№325-12-2013 12:13:32

Teu
Участник
 
Группа: Members
Зарегистрирован: 11-12-2013
Сообщений: 19
UA: Firefox 26.0

Re: [CB]Открывать последнюю папку библиотеки

А возможно ли жестом FireGestures открывать Загрузки в окне, когда установлена вторая кнопка?

Отсутствует

 

№425-12-2013 22:44:29

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

Re: [CB]Открывать последнюю папку библиотеки

Teu пишет:

А возможно ли жестом FireGestures открывать Загрузки в окне, когда установлена вторая кнопка?

Создай новый жест FireGestures с кодом:

Выделить код

Код:

document.getElementById("appmenu_downloads").doCommand();

Отсутствует

 

№526-12-2013 05:57:58

Teu
Участник
 
Группа: Members
Зарегистрирован: 11-12-2013
Сообщений: 19
UA: Firefox 26.0

Re: [CB]Открывать последнюю папку библиотеки

bunda1
Не совсем, хотелось бы Закладки открывать во вкладке, а Загрузки в окне, как и раньше. :)

Отсутствует

 

№626-12-2013 21:07:43

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

Re: [CB]Открывать последнюю папку библиотеки

Teu пишет:

bunda1
Не совсем, хотелось бы Закладки открывать во вкладке, а Загрузки в окне, как и раньше. :)

Выделить код

Код:

BrowserDownloadsUI();

Отсутствует

 

№727-12-2013 11:10:46

Teu
Участник
 
Группа: Members
Зарегистрирован: 11-12-2013
Сообщений: 19
UA: Firefox 26.0

Re: [CB]Открывать последнюю папку библиотеки

bunda1
Супер, спасибо.

Отсутствует

 

№827-12-2013 11:57:47

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

Re: [CB]Открывать последнюю папку библиотеки

bunda1
А как на жест посадить загрузки во вкладке в 26 [firefox] Этот не пашет

Выделить код

Код:

getBrowser().selectedTab = getBrowser().addTab("chrome://mozapps/content/downloads/downloads.xul");

Отредактировано villa7 (27-12-2013 11:59:02)


Лучше спросить у знающих - чем лезть не зная.

Отсутствует

 

№927-12-2013 12:25:15

Teu
Участник
 
Группа: Members
Зарегистрирован: 11-12-2013
Сообщений: 19
UA: Firefox 26.0

Re: [CB]Открывать последнюю папку библиотеки

villa7 Вот это работает.

Выделить код

Код:

var library = gBrowser.getBrowserForTab( gBrowser.selectedTab = gBrowser.addTab("chrome://browser/content/places/places.xul") ); 

library.addEventListener("pageshow", function c(e) {         
   this.removeEventListener( e.type, c );  
 
   var win = e.target.defaultView;
   if ( win.location != "chrome://browser/content/places/places.xul") return;
   
   (function f() { 
      try { 
          win.PlacesOrganizer.location = 'place:transition=7&sort=4';
          win.PlacesOrganizer._places.focus();
          }
      catch(e) { setTimeout(function() { f() }, 0) };
   })();   
});

Отредактировано Teu (27-12-2013 12:26:41)

Отсутствует

 

№1027-12-2013 12:46:20

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

Re: [CB]Открывать последнюю папку библиотеки

Teu

Выделить код

Код:

gBrowser.getBrowserForTab( gBrowser.selectedTab = gBrowser.addTab("chrome://browser/content/places/places.xul") );

Это открывает библиотеку а мне нужно загрузки.


Лучше спросить у знающих - чем лезть не зная.

Отсутствует

 

№1127-12-2013 13:53:41

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4292
UA: Firefox 26.0

Re: [CB]Открывать последнюю папку библиотеки

villa7
Старое окно загрузок в Firefox 26 сломали (и чинить не собираются). Нужно или поставить что-нибудь вроде Downloads Window, или открывать about:downloads.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№1227-12-2013 16:41:00

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

Re: [CB]Открывать последнюю папку библиотеки

villa7 пишет:

Teu

Выделить код

Код:

gBrowser.getBrowserForTab( gBrowser.selectedTab = gBrowser.addTab("chrome://browser/content/places/places.xul") );

Это открывает библиотеку а мне нужно загрузки.

Если открыть библиотеку в сайдбаре - window.openWebPanel("Loads","chrome://browser/content/places/places.xul"); то она сначала откроет библиотеку, но там можно указать загрузки и это запомнится до ближайшего рестарта...

Отредактировано difabor (27-12-2013 16:41:59)


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

Отсутствует

 

№1327-12-2013 17:10:21

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

Re: [CB]Открывать последнюю папку библиотеки

difabor пишет:

Если открыть библиотеку в сайдбаре - window.openWebPanel("Loads","chrome://browser/content/places/places.xul");

Только это не в сайдбаре, а во вкладке открывает.

Отсутствует

 

№1427-12-2013 23:39:18

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

Re: [CB]Открывать последнюю папку библиотеки

villa7 пишет:

Teu

Выделить код

Код:

gBrowser.getBrowserForTab( gBrowser.selectedTab = gBrowser.addTab("chrome://browser/content/places/places.xul") );

Это открывает библиотеку а мне нужно загрузки.

Попробуй используя css код убрать из этой вкладки всё лишнее. И будет как бы вкладка загрузок.

Отсутствует

 

№1528-12-2013 10:34:47

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

Re: [CB]Открывать последнюю папку библиотеки

bunda1
Решил проще для себя, мож кому пригодится.

Выделить код

Код:

'UR':{name:'Загрузки во вкладке',cmd:function(){getBrowser (). selectedTab = getBrowser (). addTab ("about:downloads")}}

Лучше спросить у знающих - чем лезть не зная.

Отсутствует

 

№1603-11-2014 01:23:38

Александр Колесников
Участник
 
Группа: Members
Зарегистрирован: 30-12-2005
Сообщений: 171
UA: Firefox 31.0

Re: [CB]Открывать последнюю папку библиотеки

bunda1 Спасибо за кнопку! Суперски!

P.S. Можно параллельно с этим кодом использовать

Выделить код

Код:

// Открывать закладки средним кликом в новой вкладке не закрывая меню закладок, от 16.09.2013. ................................
(function() {
    const str = 'p"', rep = 'p" && !aEvent.button', obj = BookmarksEventHandler, func = obj.onClick;
    eval("BookmarksEventHandler.onClick = " + String.replace(func, str, rep));
    addDestructor(function() obj.onClick = func);
})();
;

отсюда [CB]Открывать закладки левым кликом в новой вкладке не закрывая меню | Форум Mozilla Россия

и если да, то можно ли код от Dumby дополнить так, чтоб он обрабатывал Журнал аналогично Закладкам?

Отредактировано Александр Колесников (03-11-2014 19:52:20)

Отсутствует

 

№1703-11-2014 23:22:15

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

Re: [CB]Открывать последнюю папку библиотеки

Можно параллельно с этим кодом использовать но как там Журнал приделать я не зн

Отсутствует

 

№1808-11-2014 15:29:49

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

Re: [CB]Открывать последнюю папку библиотеки

Александр Колесников
:/

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

Выделить код

Код:

(popup => {
    popup.checkForMiddleClick = (node, e) => {
        var trg = e.target;
        if (trg.getAttribute("disabled") == "true" || e.button != 1) return;
        popup.parentNode._placesView._onCommand(e);
        if (trg.mozMatchesSelector('#historyUndoPopup > [oncommand*="undoCloseTab"]')) {
            trg.classList.contains("restoreallitem") && trg.doCommand();
            popup.parentNode._placesView.populateUndoSubmenu();
            var menupopup = popup.querySelector('.recentlyClosedTabsMenu[disabled="true"] > menupopup');
            menupopup && menupopup.hidePopup();
        }
        else if (!trg.mozMatchesSelector("#goPopup > .bookmark-item"))
            closeMenus(trg);
    }
    addDestructor(() => delete popup.checkForMiddleClick);
})(document.getElementById("goPopup"));

Отсутствует

 

№1909-11-2014 08:59:06

Александр Колесников
Участник
 
Группа: Members
Зарегистрирован: 30-12-2005
Сообщений: 171
UA: Firefox 31.0

Re: [CB]Открывать последнюю папку библиотеки

Dumby Спасибо! Всё работает параллельно: и сабж темы, и "Открывать закладки средним кликом", и этот код !

Отсутствует

 

№2015-06-2016 07:54:10

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 50.0

Re: [CB]Открывать последнюю папку библиотеки

bunda1
Перестала на [nightly] открывать во вкладке, если открывать через #downloadsHistory (помогает originalTarget, вместо(с) target).

И не открывает последнею папку закладок (всегда открывает неподшитые) и заданную папку истории (открывает "все закладки").

Отредактировано turbot (15-06-2016 08:05:04)

Отсутствует

 

№2116-06-2016 20:11:55

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

Re: [CB]Открывать последнюю папку библиотеки

turbot пишет:

bunda1
Перестала на [nightly] открывать во вкладке, если открывать через #downloadsHistory (помогает originalTarget, вместо(с) target).

Где эта #downloadsHistory :/

Отсутствует

 

№2217-06-2016 07:07:07

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 50.0

Re: [CB]Открывать последнюю папку библиотеки

bunda1
Э, ну я про дефолтную, на панели навигации:
https://lh3.googleusercontent.com/-NUa76leE1WU/V2N3Wo2emmI/AAAAAAAAcw0/4S4m8taAuro/s0/thumb_a46d885a7eb98806dac0e40cb0e20d4c.jpg

Отсутствует

 

№2320-06-2016 20:37:49

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

Re: [CB]Открывать последнюю папку библиотеки

turbot пишет:

И не открывает последнею папку закладок (всегда открывает неподшитые) и заданную папку истории (открывает "все закладки").

Вроде исправил:
Открывать библиотеку в вкладке и последнюю активную папку библиотеки

Отсутствует

 

№2420-06-2016 22:03:07

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 50.0

Re: [CB]Открывать последнюю папку библиотеки

bunda1
С папками - порядок, спасибо. :beer:
А загрузки, через кнопку выше, все также в окне открывает. И  LOG убрать забыли.

Отсутствует

 

№2520-06-2016 22:16:05

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

Re: [CB]Открывать последнюю папку библиотеки

turbot пишет:

А загрузки, через кнопку выше, все также в окне открывает.

А как ты открываешь загрузки?

Отсутствует

 

Board footer

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