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

Mozilla Россия — свежие версии программ Mozilla, а также масса полезной информации по каждому продукту.

№585106-02-2013 23:26:54

Kamui
Участник
 
Группа: Members
Зарегистрирован: 31-03-2011
Сообщений: 1796
UA: Firefox 19.0

Re: Custom Buttons

bunda1
Все равно не вставляет как нужно в панель поиска :(

Отсутствует

 

№585206-02-2013 23:36:56

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

Re: Custom Buttons

Infocatcher
Как узнать что браузер закрывается а не рестартируется.
Я тут наверно все попробовал Observer Notifications | MDN - Mozilla Firefox но без толка. Или реагирует на оба варианта или только на рестарт.

Отсутствует

 

№585306-02-2013 23:38:33

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

Re: Custom Buttons

bunda1
Спасибо. Ты как всегда на высоте.:beer: А я сколько мучался, думал, что это только у меня такой баг.:dumb:

Добавлено 06-02-2013 23:40:13

Kamui пишет

Все равно не вставляет как нужно в панель поиска :(

У меня вставляет.

Отредактировано voqabuhe (06-02-2013 23:40:13)

Отсутствует

 

№585406-02-2013 23:41:57

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

Re: Custom Buttons

Kamui
У меня Сегодня 21:53:59 вставляет в панель поиска, может сделай рестарт.

Отредактировано bunda1 (06-02-2013 23:45:30)

Отсутствует

 

№585506-02-2013 23:46:50

Kamui
Участник
 
Группа: Members
Зарегистрирован: 31-03-2011
Сообщений: 1796
UA: Firefox 19.0

Re: Custom Buttons

bunda1 пишет

У меня Сегодня 21:53:59 вставляет в панель поиска, может сделай рестарт.

Тьфу блин, неправильно выразился, имел в виду панель поиска на странице, а не то что рядом с адресной строкой :) добавил к списку элементов findbar и все заработало :)

Отсутствует

 

№585606-02-2013 23:56:59

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

Re: Custom Buttons

Kamui
Спасибо я об этом не подумал:

Выделить код

Код:

function middleMousePaste(e) {
   if ( e.button !== 1 || !custombuttons.getPrefs('middlemouse.paste') ) return;

   var localName = e.target.localName.toLowerCase(); 
   if ( /input|textarea|textbox|searchbar|findbar/.test( localName ) && document.commandDispatcher.getControllerForCommand("cmd_paste") ) { 
        goDoCommand("cmd_paste");
        e.preventDefault();
        }
};        
document.documentElement.addEventListener("click", middleMousePaste, true);
this.onDestroy = function() {
   document.documentElement.removeEventListener("click", middleMousePaste, true);
}

Отредактировано bunda1 (06-02-2013 23:57:28)

Отсутствует

 

№585706-02-2013 23:58:23

Kamui
Участник
 
Группа: Members
Зарегистрирован: 31-03-2011
Сообщений: 1796
UA: Firefox 19.0

Re: Custom Buttons

Вот, хорошая и полезная кнопочка получилась :)

Отсутствует

 

№585807-02-2013 00:04:33

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

Re: Custom Buttons

Kamui пишет

добавил к списку элементов findbar и все заработало :)

А у меня в Findbar и без этого работало, может потому что установлена Toggle  Find+3?

Отсутствует

 

№585907-02-2013 00:08:30

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

Re: Custom Buttons

voqabuhe пишет

А у меня в Findbar и без этого работало, может потому что установлена Toggle  Find+3?

Да.

Отсутствует

 

№586007-02-2013 09:44:39

Kamui
Участник
 
Группа: Members
Зарегистрирован: 31-03-2011
Сообщений: 1796
UA: Firefox 19.0

Re: Custom Buttons

Есть такой код:

Выделить код

Код:

/**
 * SxW Tools
 * Date: Jun 10 2012
 * Some Playground Tools...
 */

/** Check if the userContent.css is already registered. If so,
 * unregister and re-register it so that changes are applied to the
 * running firefox
 */
function reloadUserStyle() {

    // stylesheet service
    var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].
        getService(Components.interfaces.nsIStyleSheetService);

    // io service to access the file
    var ios = Components.classes["@mozilla.org/network/io-service;1"].
        getService(Components.interfaces.nsIIOService);

    // directory service to access the user chrome path ("UChrm")
    var chromePath = Components.classes["@mozilla.org/file/directory_service;1"].
        getService(Components.interfaces.nsIProperties).
        get("UChrm", Components.interfaces.nsIFile);

    // build the path
    var userChromePath = 'file://' + chromePath.path + '/userContent.css';

    // URI
    var uri = ios.newURI( userChromePath, null, null );

    // if registered unregister first
    if ( sss.sheetRegistered( uri, sss.USER_SHEET ) ) {
        sss.unregisterSheet( uri, sss.USER_SHEET );
    }

    // then load and register as USER_SHEET
    sss.loadAndRegisterSheet( uri, sss.USER_SHEET );
}

Служит для перезагрузки userContent.css без перезапуска браузера, работает ли он? И можно ли сделать CB которая добавит пункт меню, как здесь?

Отсутствует

 

№586107-02-2013 11:27:40

middlemouse.paste
Участник
 
Группа: Members
Зарегистрирован: 10-07-2011
Сообщений: 21
UA: Firefox 18.0

Re: Custom Buttons

Можно ли дополнить код кнопки "Открыть в нижней панели"? Нужно чтобы можно было по клавише Esc закрывать нижнюю панель.

В клавише "Downloads" обнаружил недоработку: внешне BrowserDownloadsUI(); открываемое в отдельном окошке и страница chrome://mozapps/content/downloads/downloads.xul не отличаются по количеству и расположению элементов (отличия только в масштабе), но поведение страницы downloads.xul не полностью идентично BrowserDownloadsUI(). При удалении любой закачки из списка по клавише Del или через контекстное меню строка с закачкой немедленно исчезает в BrowserDownloadsUI(), а на странице downloads.xul строка остается висеть вплоть до ручного обновления. Причем если удалить закачку со страницы при одновременно запущенной BrowserDownloadsUI(), то в UI строка исчезает, а на странице все также остается. Можно ли исправить этот недочет и обновить пост в "Готовых кнопках"? И как можно открыть downloads.xul в новом табе со скрытой панелью навигации, аналогично странице "Управление дополнениями"?

Требуется помощь в разработке однй кнопки, назовем ее "FullScreen swap toolbar-menubar".
Суть кнопки в том чтобы при наведении на нее мыши и вращении колесика переводить Firefox в полноэкранный режим и выходить из него, а также скрывать - открывать панель меню (наилучшее расположение для кнопки - в панели навигации). Половина кода работает (для входа в полноэкранный режим и выхода из него), вторая половина кода у меня не получается.

Вот сама кнопка

Выделить код

Код:

/*Initialization Code*/

this.addEventListener('DOMMouseScroll', handleScroll, false);

function handleScroll(e)
{
//   alert(window.fullScreen);
//   custombuttons.alertSlide(window.fullScreen, ( e.detail < 0 ) ? "вверх" : "вниз");
//Крутим вверх для минимизации firefox
//Крутим вниз для максимизации firefox
                                //fullscreen    menubar

   if    (window.fullScreen)    //    |!(menubar.collapsed))    //1        0
   {
       if ( e.detail > 0 )
       BrowserFullScreen();    //уйти из полного экрана
   }

   if    (!window.fullScreen)    //|!(menubar.collapsed))    //0        0
   {
   if ( e.detail > 0 )        //раскрыть панель меню
   menubarShow();    //    setToolbarVisibility(menubar , menubar.collapsed);
   else
   BrowserFullScreen();    //войти в полноэкранный режим
   }

/*
   if    (!(window.fullScreen)|(menubar.collapsed))        //0        1
   {
   if ( e.detail < 0 )        //закрыть панель меню
   menubarClose();    //    menubar.setAttribute("style", "visibility: collapse;");
   }
*/
}

  var menubar = document.getElementById("toolbar-menubar");

  //показывать 'Панель меню'.....
  function menubarShow(event) {
  menubar.setAttribute("style", "visibility:visible");
  };

  //убрать 'Панель меню'.....
  function menubarClose(event){
  menubar.setAttribute("style", "visibility: collapse;");
  };


И обязательно ли добавлять в код this.onDestroy = function() {..  ?

Отсутствует

 

№586207-02-2013 12:06:49

Kamui
Участник
 
Группа: Members
Зарегистрирован: 31-03-2011
Сообщений: 1796
UA: Firefox 19.0

Re: Custom Buttons

okkamas_knife пишет

В СМ походу не работает.

Баг на багзилле, в котором я нашел этот патч, предназначен для [firefox], так что вполне возможно что в SM он и не должен работать.

Отсутствует

 

№586307-02-2013 13:14:05

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

Re: Custom Buttons

Kamui пишет

Баг на багзилле, в котором я нашел этот патч, предназначен для [firefox], так что вполне возможно что в SM он и не должен работать.

В Firefox тоже не будет:

Выделить код

Код:

alert(sss.sheetRegistered( uri, sss.USER_SHEET ));

выводит false, тогда как userContent.css у меня используется.
Вдобавок там другой механизм: userContent.css работает только для страниц внутри browser/iframe с type="content".


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

Отсутствует

 

№586407-02-2013 14:52:21

Kamui
Участник
 
Группа: Members
Зарегистрирован: 31-03-2011
Сообщений: 1796
UA: Firefox 19.0

Re: Custom Buttons

Infocatcher пишет

В Firefox тоже не будет:

Печально, а так здорово было бы перезагружать user(Content/Chrome).css без рестарта браузера :(

Отсутствует

 

№586507-02-2013 20:54:23

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

Re: Custom Buttons

Есть такая кнопка CB Mouse Gestures+, найти её правда не просто, в базе нет, и не знаю кто автор такой полезности, спрошу у вас. На жесте есть функция открытия блокнота в соседней вкладке, вот код

скрытый текст
'LDRU':{name:'Notepad',cmd:function(){ var link="data:text/html;base64,PFRFWFRBUkVBPjwvVEVYVEFSRUE+DQo8c3R5bGU+aHRtbCB7YmFja2dyb3VuZC1jb2xvcjpibGFjaztvdmVyZmxvdzpoaWRkZW47fXRleHRhcmVhIHtiYWNrZ3JvdW5kOiMzODM4Mzg7b3ZlcmZsb3cteTphdXRvO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7LW1vei1ib3JkZXItcmFkaXVzOjVweDtib3JkZXI6IDVweCBpbnNldCB3aGl0ZTtjb2xvcjogd2hpdGU7fTwvc3R5bGU+";
                 var label="Notepad";
                 gBrowser.selectedTab = gBrowser.addTab(link);}},

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


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

Отсутствует

 

№586607-02-2013 21:06:09

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

Re: Custom Buttons

middlemouse.paste пишет

Можно ли дополнить код кнопки "Открыть в нижней панели"? Нужно чтобы можно было по клавише Esc закрывать нижнюю панель.

Удали старую кнопку и установи эту + рестарт.

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20%u043D%u0438%u0436%u043D%u0435%u0439%20%u043F%u0430%u043D%u0435%u043B%u0438%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABxUlEQVR4XqWRP2oVURSHvztzXyZg/ENiZ2NjOsUtCHYuQndh4QIs3YCbsLBRwQUIgpViIQQFQdTE5M2bNzPnj+cy7zGFgRT+4OM7d5hzONybbj89enVwrbkngzO0wtBpEF7N9bgOr5SxG5HesF5wWePd0dt0//nP9d3D/ebkBJan0LZwVhwsC2ewCrpgHWdrAQcMaF/2eX83jbf2aE6BdRNcDq5Ctw534dXGhRaGHsyhwvn8IY/58MB5dAfcAcK2MYDPtRmoGmqKidMs4OGTilwDi4o5NefG3RFxzILsNDXkysmYclFKk4iFDdVpSAWohvWCfndH1cIW3g5RrOBGFjF+LwcS6fy1tWBTg3kxGl7UMIqSv/5oefbiGHX+SUrz0Lmciku7Fcetkm9c3+Xxg5uMNk9wKxjmHiZsQVgddwvgyo7x7s1Hcq5gr6mYA5ijmhDV0oSaIhIm8Onb2AcG2efdcWd704EhYrgXl/OMmYNPVME2mG1/sOLtC2ybwrZxYIYDuQ5Nceo6SAZiaA6JYmlaXcxY4NMTVrCTy0sk8uv3v+Tb9z/Sr0ZkEKQfkHEMK1o8FAQVAQdnSl0lPn05keTu/E/+ApLnoYXyGb2zAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u0411%u043B%u043E%u043A%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u043F%u043E%u0432%u0442%u043E%u0440%u043D%u044B%u0439%20%u0437%u0430%u043F%u0443%u0441%u043A%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u0438%20%u043E%u0431%u0440%u0430%u0431%u043E%u0442%u0447%u0438%u043A%u043E%u0432%20%u043F%u0440%u0438%20%u043E%u0442%u043A%u0440%u044B%u0442%u0438%u0438%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043F%u0430%u043D%u0435%u043B%u0435%u0439%20........................%0Aif%20%28this.hasAttribute%28%22stop%22%29%29%20return%3B%0A%0A%0Athis.bottomPanel%20%3D%20function%28aURL%29%20%7B%0A%20%20var%20prefBranch%20%3D%20%22custombuttons.bottomPanel.%22%0A%0A%20%20if%28%21aURL%20%26%26%20aURL%20%21%3D%20%22%22%29%20%7B%0A%20%20%20%20try%20%7B%0A%20%20%20%20%20%20aURL%20%3D%20gPrefService.getCharPref%28prefBranch%20+%20%22url%22%29%3B%0A%20%20%20%20%7D%20catch%28ex%29%20%7B%0A%20%20%20%20%20%20aURL%20%3D%20%22%22%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20if%28aURL%20%3D%3D%20%22%22%29%20return%3B%0A%0A%20%20if%28aURL%20%3D%3D%20gURLBar.value%20%26%26%20%21aURL.match%28/%5E%5Cw+%3F%5C%3A/%29%29%20aURL%20%3D%20%22http%3A//%22%20+%20aURL%3B%0A%0A%20%20var%20panelID%20%3D%20%22bottom-panel%22%3B%0A%20%20var%20gPanel%20%3D%20document.getElementById%28panelID%29%3B%0A%20%20var%20height%3B%0A%20%20try%20%7B%0A%20%20%20%20height%20%3D%20gPrefService.getIntPref%28prefBranch%20+%20%22height%22%29%3B%0A%20%20%7D%20catch%28ex%29%20%7B%0A%20%20%20%20height%20%3D%20400%3B%0A%20%20%7D%0A%0A%20%20if%28gPanel%29%20%7B%0A%0A%20%20%20%20var%20src%20%3D%20gPanel.firstChild.nextSibling.getAttribute%28%22src%22%29%3B%0A%20%20%20%20if%28aURL%20%21%3D%20src%29%20%7B%0A%20%20%20%20%20%20gPanel.firstChild.nextSibling.setAttribute%28%22src%22%2C%20aURL%29%3B%0A%20%20%20%20%20%20//gPanel.firstChild.nextSibling.loadURI%28aURL%29%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20gPrefService.setIntPref%28prefBranch%20+%20%22height%22%2C%20gPanel.height%29%3B%0A%20%20%20%20%20%20gPanel.parentNode.removeChild%28gPanel.previousSibling%29%3B%0A%20%20%20%20%20%20gPanel.parentNode.removeChild%28gPanel%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%7D%20else%20%7B%0A%0A%20%20%20%20var%20appContent%20%3D%20document.getElementById%28%22appcontent%22%29%3B%0A%0A%20%20%20%20var%20spl%20%3D%20appContent.appendChild%28document.createElement%28%22splitter%22%29%29%3B%0A%20%20%20%20%20%20%20%20spl.setAttribute%28%22collapse%22%2C%20%22after%22%29%3B%0A%20%20%20%20%20%20%20%20spl.style.border%20%3D%20%22none%22%3B%0A%20%20%20%20%20%20%20%20spl.style.borderTop%20%3D%20%221px%20solid%20threedhighlight%22%3B%0A%20%20%20%20%20%20%20%20spl.setAttribute%28%22onclick%22%2C%20%22this.setAttribute%28%27state%27%2C%20%27%27%29%3B%22%29%3B%0A%0A%20%20%20%20var%20box%20%3D%20appContent.appendChild%28document.createElement%28%22hbox%22%29%29%3B%0A%20%20%20%20%20%20%20%20box.id%20%3D%20panelID%3B%0A%20%20%20%20%20%20%20%20box.height%20%3D%20height%3B%0A%20%20%20%20%20%20%20%20box.orient%20%3D%20%22vertical%22%3B%0A%0A%20%20%20%20var%20tbr%20%3D%20box.appendChild%28document.createElement%28%22toolbar%22%29%29%3B%0A%20%20%20%20%20%20%20%20tbr.setAttribute%28%22fullscreentoolbar%22%2C%20true%29%3B%0A%0A%20%20%20%20var%20spr%20%3D%20tbr.appendChild%28document.createElement%28%22spacer%22%29%29%3B%0A%20%20%20%20%20%20%20%20spr.setAttribute%28%22flex%22%2C%201%29%3B%0A%0A%20%20%20%20var%20btn%20%3D%20tbr.appendChild%28document.createElement%28%22toolbarbutton%22%29%29%3B%0A%20%20%20%20%20%20%20%20btn.style.listStyleImage%20%3D%20%22url%28chrome%3A//global/skin/icons/Minimize.gif%29%22%3B%0A%20%20%20%20%20%20%20%20btn.minimize%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20gPanel%20%3D%20document.getElementById%28%22bottom-panel%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20gPanel.previousSibling.setAttribute%28%22state%22%2C%20%22collapsed%22%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20btn.setAttribute%28%22oncommand%22%2C%20%22this.minimize%28%29%22%29%3B%0A%0A%20%20%20%20var%20btc%20%3D%20tbr.appendChild%28document.createElement%28%22toolbarbutton%22%29%29%3B%0A%20%20%20%20%20%20%20%20btc.className%20%3D%20%22tabs-closebutton%22%3B%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20btc.closePanel%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20gPanel%20%3D%20document.getElementById%28%22bottom-panel%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20gPrefService.setIntPref%28prefBranch%20+%20%22height%22%2C%20gPanel.height%29%3B%0A%20%20%20%20%20%20%20%20%20%20gPanel.parentNode.removeChild%28gPanel.previousSibling%29%3B%0A%20%20%20%20%20%20%20%20%20%20gPanel.parentNode.removeChild%28gPanel%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20btc.setAttribute%28%22id%22%2C%20%22closeBottomPanel%22%29%3B%0A%20%20%20%20%20%20%20%20btc.setAttribute%28%22oncommand%22%2C%20%22this.closePanel%28%29%22%29%3B%0A%0A%20%20%20%20var%20ifr%20%3D%20box.appendChild%28document.createElement%28%22browser%22%29%29%3B%0A%20%20%20%20%20%20%20%20ifr.setAttribute%28%22type%22%2C%20%22content%22%29%3B%0A%20%20%20%20%20%20%20%20ifr.setAttribute%28%22flex%22%2C%201%29%3B%0A%20%20%20%20%20%20%20%20ifr.setAttribute%28%22src%22%2C%20aURL%29%3B%0A%20%20%20%20%20%20%20%20ifr.setAttribute%28%22tooltip%22%2C%20%22aHTMLTooltip%22%29%3B%0A%20%20%20%20%20%20%20%20ifr.setAttribute%28%22onclick%22%2C%20%22return%20contentAreaClick%28event%2C%20true%29%22%29%3B%0A%20%20%20%20%20%20%20%20ifr.setAttribute%28%22autocompletepopup%22%2C%20%22PopupAutoComplete%22%29%3B%0A%20%20%20%20%20%20%20%20ifr.setAttribute%28%22contextmenu%22%2C%20%22contentAreaContextMenu%22%29%3B%0A%20%20%20%20%20%20%20%20ifr.setAttribute%28%22contentcontextmenu%22%2C%20%22contentAreaContextMenu%22%29%3B%0A%20%20%7D%0A%0A%20%20gPrefService.setCharPref%28prefBranch%20+%20%22url%22%2C%20aURL%29%3B%0A%0A%7D%20%20%0A//------------------------------------%0Athis.getFile%20%3D%20function%28%29%20%7B%0A%20%20try%20%7B%0A%20%20%20%20const%20nsIFilePicker%20%3D%20Components.interfaces.nsIFilePicker%3B%0A%20%20%20%20var%20fp%20%3D%20Components.classes%5B%27@mozilla.org/filepicker%3B1%27%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28nsIFilePicker%29%3B%0A%20%20%20%20fp.init%28window%2C%20gNavigatorBundle.getString%28%22openFile%22%29%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nsIFilePicker.modeOpen%29%3B%0A%20%20%20%20fp.appendFilters%28nsIFilePicker.filterAll%20%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nsIFilePicker.filterText%20%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nsIFilePicker.filterImages%20%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nsIFilePicker.filterXML%20%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nsIFilePicker.filterHTML%29%3B%0A%20%20%20%20if%28fp.show%28%29%20%3D%3D%20nsIFilePicker.returnOK%29%0A%20%20%20%20%20%20return%20fp.fileURL.spec%3B%0A%20%20%20%20else%20return%20%22%22%3B%0A%20%20%7D%20catch%20%28ex%29%20%7B%0A%20%20%7D%0A%7D%0A%0A//------------------------------------%0A%0A%0Afunction%20addMenuitem%28aLabel%2C%20aURL%2C%20aNode%2C%20aObjString%29%20%7B%0A%20%20var%20mItem%20%3D%20aNode.appendChild%28document.createElement%28%22menuitem%22%29%29%3B%0A%20%20mItem.setAttribute%28%22label%22%2C%20aLabel%29%3B%0A%20%20mItem.setAttribute%28%22oncommand%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20aObjString%20+%20%22.bottomPanel%28%27%22%20+%20aURL%20+%20%22%27%29%3B%22%29%3B%0A%7D%0A%0A%0Afunction%20addSeparator%28aNode%2C%20aNum%29%20%7B%0A%20%20var%20separator%20%3D%20aNode.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%0A%20%20separator.id%20%3D%20%22bottom-panel-button-separator%22%20+%20aNum%3B%0A%7D%0A%0Avar%20mPopup%20%3D%20document.createElement%28%22menupopup%22%29%3B%0AmPopup.setAttribute%28%22oncommand%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0AmPopup.setAttribute%28%22onpopupshowing%22%2C%20%22this.parentNode.popupShowing%28this%29%22%29%3B%0A%0A%0AobjString%20%3D%20%22this.parentNode.parentNode%22%3B%0AaddMenuitem%28%22about%3Aconfig%22%2C%20%22about%3Aconfig%22%2C%20mPopup%2C%20objString%29%3B%0AaddMenuitem%28%22about%3Asupport%22%2C%20%22about%3Asupport%22%2C%20mPopup%2C%20objString%29%3B%0AaddMenuitem%28%22Error%20Console%22%2C%20%22chrome%3A//global/content/console.xul%22%2C%20mPopup%2C%20objString%29%3B%0AaddMenuitem%28%22about%3Amemory%22%2C%20%22about%3Amemory%22%2C%20mPopup%2C%20objString%29%3B%0AaddMenuitem%28%22about%3Aplugins%22%2C%20%22about%3Aplugins%22%2C%20mPopup%2C%20objString%29%3B%0AaddMenuitem%28%22about%3Acache%22%2C%20%22about%3Acache%22%2C%20mPopup%2C%20objString%29%3B%0AaddMenuitem%28%22about%3Acache%3Fdevice%3Ddisk%22%2C%20%22about%3Acache%3Fdevice%3Ddisk%22%2C%20mPopup%2C%20objString%29%3B%0AaddMenuitem%28%22about%3Acache%3Fdevice%3Dmemory%22%2C%20%22about%3Acache%3Fdevice%3Dmemory%22%2C%20mPopup%2C%20objString%29%3B%0AaddMenuitem%28%22about%3Acache%3Fdevice%3Doffline%22%2C%20%22about%3Acache%3Fdevice%3Doffline%22%2C%20mPopup%2C%20objString%29%3B%0A%0AaddSeparator%28mPopup%2C%200%29%3B%0AaddMenuitem%28%22%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%22%2C%20%22chrome%3A//browser/content/preferences/preferences.xul%22%2C%20mPopup%2C%20objString%29%3B%0AaddMenuitem%28%22%u0414%u043E%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u044F%22%2C%20%22chrome%3A//mozapps/content/extensions/extensions.xul%3Ftype%3Dextensions%22%2C%20mPopup%2C%20objString%29%3B%0AaddMenuitem%28%22%u041C%u0435%u043D%u0435%u0434%u0436%u0435%u0440%20%u041F%u0430%u0440%u043E%u043B%u0435%u0439%22%2C%20%22chrome%3A//passwordmgr/content/passwordManager.xul%22%2C%20mPopup%2C%20objString%29%3B%0AaddMenuitem%28%22%u0423%u043F%u0440%u0430%u0432%u043B%u0435%u043D%u0438%u0435%20Cookies%22%2C%20%22chrome%3A//browser/content/preferences/cookies.xul%22%2C%20mPopup%2C%20objString%29%3B%0AaddMenuitem%28%22DOM%20Inspector%22%2C%20%22chrome%3A//inspector/content/inspector.xul%22%2C%20mPopup%2C%20objString%29%3B%0AaddSeparator%28mPopup%2C%200%29%3B%0AaddMenuitem%28%22%u0417%u0430%u0433%u0440%u0443%u0437%u043A%u0438%22%2C%20%22chrome%3A//mozapps/content/downloads/downloads.xul%22%2C%20mPopup%2C%20objString%29%3B%0AaddMenuitem%28%22%u0417%u0430%u043A%u043B%u0430%u0434%u043A%u0438%22%2C%20%22chrome%3A//browser/content/bookmarks/bookmarksPanel.xul%22%2C%20mPopup%2C%20objString%29%3B%0AaddMenuitem%28%22%u0418%u0441%u0442%u043E%u0440%u0438%u044F%22%2C%20%22chrome%3A//browser/content/history/history-panel.xul%22%2C%20mPopup%2C%20objString%29%3B%0AaddMenuitem%28%22%u0423%u043F%u0440%u0430%u0432%u043B%u0435%u043D%u0438%u0435%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0430%u043C%u0438%22%2C%20%22chrome%3A//browser/content/places/places.xul%22%2C%20mPopup%2C%20objString%29%3B%0AaddSeparator%28mPopup%2C%200%29%3B%0A%0Avar%20homePages%20%3D%20gHomeButton.getHomePage%28%29.split%28%22%7C%22%29%3B%0Avar%20homePage%20%3D%20homePages%5B0%5D%3B%0A%0AaddMenuitem%28%22%u0414%u043E%u043C%u0430%u0448%u043D%u044F%u044F%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0430%22%2C%20homePage%2C%20mPopup%2C%20objString%29%3B%0A%0AaddMenuitem%28%22%u0422%u0435%u043A%u0443%u0449%u0430%u044F%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0430%22%2C%20%22%27%20+%20content.location.href%20+%20%27%22%2C%20mPopup%2C%20objString%29%3B%0AaddMenuitem%28%22%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u0438%u0441%u0445%u043E%u0434%u043D%u044B%u0439%20%u043A%u043E%u0434%22%2C%20%22view-source%3A%27%20+%20content.location.href%20+%27%22%2C%20mPopup%2C%20objString%29%3B%0AaddMenuitem%28%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0444%u0430%u0439%u043B%22%2C%20%22%27%20+%20this.parentNode.parentNode.getFile%28%29%20+%20%27%22%2C%20mPopup%2C%20objString%29%3B%0A%0A%0Athis.appendChild%28mPopup%29%3B%0Athis.type%20%3D%20%22menu%22%3B%0Athis.orient%20%3D%20%22horizontal%22%3B%0A%0A%0Afunction%20handleKeydown%28e%29%20%7B%20%0A%20%20if%20%28%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.ctrlKey%20%26%26%20e.keyCode%20%3D%3D%2027%20%29%20%7B%0A%20%20%20%20%20%20%20if%20%28%20%21document.getElementById%28%27closeBottomPanel%27%29%20%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20e.stopPropagation%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById%28%27closeBottomPanel%27%29.click%28%29%3B%0A%20%20%20%20%20%20%20%7D%3B%20%20%0A%7D%0Awindow.addEventListener%28%27keydown%27%2C%20handleKeydown%2C%20false%29%3B%0A%0A%0A//%20%u0443%u0441%u0442%u0430%u043D%u0430%u0432%u043B%u0438%u0432%u0430%u0435%u043C%20%u0444%u043B%u0430%u0433%2C%20%u0447%u0442%u043E%u0431%u044B%20%u0444%u0443%u043D%u043A%u0446%u0438%u0438%20%u0438%20%u043E%u0431%u0440%u0430%u0431%u043E%u0442%u0447%u0438%u043A%u0438%20%u043D%u0435%20%u0438%u0441%u043F%u043E%u043B%u043D%u044F%u043B%u0430%u0441%u044C%20%u0434%u0432%u0430%u0436%u0434%u044B%20%20%0Athis.setAttribute%28%22stop%22%2C%22true%22%29%3B%0A%0A%0A%0Avar%20that%20%3D%20this%3B%0Athis.hideDropMarker%20%3D%20function%28%29%20%7B%0A%20%20var%20dropMarker%20%3D%20document.getAnonymousElementByAttribute%28that%2C%20%22class%22%2C%20%22toolbarbutton-menu-dropmarker%22%29%3B%0A%20%20if%20%28dropMarker%29%20%7B%0A%20%20%20%20dropMarker.setAttribute%28%22hidden%22%2C%20%22true%22%29%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20setTimeout%28that.hideDropMarker%2C%2010%29%3B%0A%20%20%7D%0A%7D%0Athis.hideDropMarker%28%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bthis.bottomPanel%28%29%3B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5Bnull%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Добавлено 07-02-2013 21:10:28

villa7 пишет

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

Выделить код

Код:

var localFile = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
localFile.initWithPath("C:\\WINDOWS\\system32\\notepad.exe");
localFile.launch();

Отредактировано bunda1 (07-02-2013 21:10:28)

Отсутствует

 

№586707-02-2013 21:45:40

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

Re: Custom Buttons

okkamas_knife пишет

а тут вместо пунктов кнопки и особой разницы для восприятия нет вертикально они или горизонтально. как и двигать мышой выбирая нужную.

Тут как раз почти полноценное меню:

menu_with_merged_custom_buttons.png
temporarily_split.png

:)

Отредактировано Infocatcher (07-02-2013 21:46:54)


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

Отсутствует

 

№586807-02-2013 21:53:49

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

Re: Custom Buttons

middlemouse.paste пишет

Требуется помощь в разработке однй кнопки, назовем ее "FullScreen swap toolbar-menubar".
Суть кнопки в том чтобы при наведении на нее мыши и вращении колесика переводить Firefox в полноэкранный режим и выходить из него, а также скрывать - открывать панель меню (наилучшее расположение для кнопки - в панели навигации). Половина кода работает (для входа в полноэкранный режим и выхода из него), вторая половина кода у меня не получается.
И обязательно ли добавлять в код this.onDestroy = function() {..  ?

Выделить код

Код:

var menubar = document.getElementById("toolbar-menubar");

function handleScroll(e) {
   ( e.detail < 0 ) ?  menubar.setAttribute("style", "visibility:visible") : menubar.setAttribute("style", "visibility: collapse;"); 
   ( e.detail < 0 ) ?  BrowserFullScreen() : window.fullScreen ? BrowserFullScreen() : LOG('');     
};
this.addEventListener('DOMMouseScroll', handleScroll, false);
this.onDestroy = function() {
   this.removeEventListener('DOMMouseScroll', handleScroll, false);
}

this.onDestroy = function() {.. тут наверно не обязателен но очень желателен. После открытии настройки панелей и редактировании кнопки обработчики( addEventListener...) без this.onDestroy бесконечно дублируются и все коды и функции запускают многократно.

Отредактировано bunda1 (07-02-2013 21:55:28)

Отсутствует

 

№586907-02-2013 22:02:31

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

Re: Custom Buttons

bunda1
CB Mouse Gestures+
Как всегда, то что нужно, спасибо.


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

Отсутствует

 

№587007-02-2013 22:02:53

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

Re: Custom Buttons

middlemouse.paste пишет

И как можно открыть downloads.xul в новом табе со скрытой панелью навигации, аналогично странице "Управление дополнениями"?

в userChrome.css

Выделить код

Код:

#main-window[title="Загрузки - Mozilla Firefox"] #nav-bar { display: none !important; }

Отсутствует

 

№587108-02-2013 12:32:13

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

Re: Custom Buttons

okkamas_knife пишет

но тогда имхо надо подходить по-другому (понимаю что лень)
то есть делать кнопку с нуля а не сборную солянку из кнопок лепить

Ну да. Разве что при этом в полноценной кнопке-меню весь код будет в инициализации.
Да и то можно извернуться: menuWithDelayedInitialization.js (установить).


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

Отсутствует

 

№587209-02-2013 00:48:06

serg00700
Участник
 
Группа: Members
Зарегистрирован: 27-10-2010
Сообщений: 74
UA: Firefox 18.0

Re: Custom Buttons

Здравствуйте. Есть кнопка которая отображает потребление памяти в адресной строке [firefox]. Вот только на 18 [firefox] не работает. Может кто поможет исправить?
Кнопка старая  тут

скрытый текст
Код кнопки:

Выделить код

Код:

custombuttons.alertSlide("Кнопка работает без клика", "Отображение потребления памяти в адресной строке.");

Код:

Инициализация:

Выделить код

Код:

var ucjs_MemoryMonitor = {
   interval: 2000, //ms
  _maxMemory: 1500,
  _prefix: "MB", //B, KB, MB, GB
  _dPrefix: true,
  interval: null,
  init: function () {
    var memoryPanel = document.createElement("statusbarpanel");
    memoryPanel.id = "MemoryDisplay";
    memoryPanel.setAttribute("label", this.setPrefix(this._dPrefix));
    var urlbar = document.getElementById("urlbar-icons");
    var go = urlbar.lastChild;
    urlbar.insertBefore(memoryPanel, go)
    this.start();
    this.interval = setInterval(this.start, this._interval);
  },
  addFigure: function (str) {
    var num = new String(str).replace(/,/g, "");
    while (num != (num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2")));
    return num;
  },
  restart: function () {
    var appStartup = Components.interfaces.nsIAppStartup;
    Components.classes["@mozilla.org/toolkit/app-startup;1"].getService(appStartup).quit(appStartup.eRestart | appStartup.eAttemptQuit);
  },
  getSize: function (mem, flag) {
    var pre = 1;
    switch (this._prefix) {
      case 'KB':
        pre = 1024;
        break;
      case 'MB':
        pre = 1024 * 1024;
        break;
      case 'GB':
        pre = 1024 * 1024 * 1024;
        break;
    }
    if (flag) return mem * pre;
    else return ucjs_MemoryMonitor.addFigure(Math.round(mem / pre));
  },
  setPrefix: function (flag) {
    return (flag) ? " " + this._prefix : "";
  },
  start: function () {
    try {
      const Cc = Components.classes;
      const Ci = Components.interfaces;
      var mgr = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager);
      var e = mgr.enumerateReporters();
      var gMemReporters = {};
      while (e.hasMoreElements()) {
        var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter);
        gMemReporters[mr.path] = mr;
      }
      var workingSet = gMemReporters["resident"].amount;
      var commitmentSize = gMemReporters["private"].amount;
      var gfxImage = gMemReporters["gfx-surface-image"].amount;
      var restartMemory = ucjs_MemoryMonitor.getSize(ucjs_MemoryMonitor._maxMemory, true);
      var memoryPanel = document.getElementById("MemoryDisplay");
      memoryPanel.setAttribute("label", ucjs_MemoryMonitor.getSize(workingSet) + ucjs_MemoryMonitor.setPrefix(ucjs_MemoryMonitor._dPrefix));

if (workingSet > restartMemory) {
        ucjs_MemoryMonitor.restart();
      }
    } catch (e) {
      clearInterval(ucjs_MemoryMonitor.interval);
    }
  }
}
if (!document.getElementById("MemoryDisplay")) ucjs_MemoryMonitor.init();
this.style.opacity = "0.3";

Отредактировано serg00700 (09-02-2013 00:49:27)


Mozilla  Firefox -  Просто "мега бомба"

Отсутствует

 

№587309-02-2013 00:59:22

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

Re: Custom Buttons

serg00700 пишет

Здравствуйте. Есть кнопка которая отображает потребление памяти в адресной строке [firefox]. Вот только на 18 [firefox] не работает.

Вот рабочая [CB]Memory Monitor | Форум Mozilla Россия

Отсутствует

 

№587409-02-2013 02:40:02

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

Re: Custom Buttons

bunda1 пишет

Как узнать что браузер закрывается а не рестартируется.
Я тут наверно все попробовал Observer Notifications | MDN - Mozilla Firefox
но без толка. Или реагирует на оба варианта или только на рестарт.

Неужели не работает ?

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

Выделить код

Код:

const pn = " T E M P";
var prefs = Application.prefs;
if (!prefs.has(pn)) prefs.setValue(pn, "");
var pref = prefs.get(pn);

if (pref.value) {
    alert("quit-event:   " + pref.value);
}
const topic = "quit-application";

var observer = {
    observe: function(subject, topic, data) {
        pref.value = data; // <======
    }
};
Services.obs.addObserver(observer, topic, false);

this.onDestroy = function(reason) {

    if (reason != "destructor") {
        Services.obs.removeObserver(observer, topic, false);
        pref.value = "";
    }
    if (reason == "delete") pref.reset();
};

Отредактировано Dumby (09-02-2013 02:40:54)

Отсутствует

 

№587509-02-2013 10:44:05

serg00700
Участник
 
Группа: Members
Зарегистрирован: 27-10-2010
Сообщений: 74
UA: Firefox 18.0

Re: Custom Buttons

voqabuhe пишет

serg00700 пишет: Здравствуйте. Есть кнопка которая отображает потребление памяти в адресной строке . Вот только на 18  не работает.Вот рабочая [CB]Memory Monitor | Форум Mozilla Россия

Спасибо. Эта работает, но только завышает показания.


Mozilla  Firefox -  Просто "мега бомба"

Отсутствует

 

Board footer

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