Infocatcher
Как узнать что браузер закрывается а не рестартируется.
Я тут наверно все попробовал Observer Notifications | MDN - Mozilla Firefox но без толка. Или реагирует на оба варианта или только на рестарт.
Отсутствует
bunda1
Спасибо. Ты как всегда на высоте. А я сколько мучался, думал, что это только у меня такой баг.
Добавлено 06-02-2013 23:40:13
Все равно не вставляет как нужно в панель поиска
У меня вставляет.
Отредактировано voqabuhe (06-02-2013 23:40:13)
Отсутствует
Kamui
У меня Сегодня 21:53:59 вставляет в панель поиска, может сделай рестарт.
Отредактировано bunda1 (06-02-2013 23:45:30)
Отсутствует
У меня Сегодня 21:53:59 вставляет в панель поиска, может сделай рестарт.
Тьфу блин, неправильно выразился, имел в виду панель поиска на странице, а не то что рядом с адресной строкой добавил к списку элементов findbar и все заработало
Отсутствует
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)
Отсутствует
Есть такой код:
/** * 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 которая добавит пункт меню, как здесь?
Отсутствует
Можно ли дополнить код кнопки "Открыть в нижней панели"? Нужно чтобы можно было по клавише 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;"); };
Отсутствует
Баг на багзилле, в котором я нашел этот патч, предназначен для , так что вполне возможно что в SM он и не должен работать.
В Firefox тоже не будет:
выводит false, тогда как userContent.css у меня используется.
Вдобавок там другой механизм: userContent.css работает только для страниц внутри browser/iframe с type="content".
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Есть такая кнопка CB Mouse Gestures+, найти её правда не просто, в базе нет, и не знаю кто автор такой полезности, спрошу у вас. На жесте есть функция открытия блокнота в соседней вкладке, вот код
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
Можно ли дополнить код кнопки "Открыть в нижней панели"? Нужно чтобы можно было по клавише 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
но я им не пользуюсь, в то время как до обычного блокнота добираюсь окольными путями, может можно повесить на жест вызов системного блокнота, отдельной кнопкой не хотелось бы, потому как опять же через дополнительную скрытую панель добираться, а на главной места нет.
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)
Отсутствует
а тут вместо пунктов кнопки и особой разницы для восприятия нет вертикально они или горизонтально. как и двигать мышой выбирая нужную.
Тут как раз почти полноценное меню:
Отредактировано Infocatcher (07-02-2013 21:46:54)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Требуется помощь в разработке однй кнопки, назовем ее "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)
Отсутствует
И как можно открыть downloads.xul в новом табе со скрытой панелью навигации, аналогично странице "Управление дополнениями"?
в userChrome.css
#main-window[title="Загрузки - Mozilla Firefox"] #nav-bar { display: none !important; }
Отсутствует
но тогда имхо надо подходить по-другому (понимаю что лень)
то есть делать кнопку с нуля а не сборную солянку из кнопок лепить
Ну да. Разве что при этом в полноценной кнопке-меню весь код будет в инициализации.
Да и то можно извернуться: menuWithDelayedInitialization.js (установить).
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Здравствуйте. Есть кнопка которая отображает потребление памяти в адресной строке . Вот только на 18 не работает. Может кто поможет исправить?
Кнопка старая тут
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 - Просто "мега бомба"
Отсутствует
Здравствуйте. Есть кнопка которая отображает потребление памяти в адресной строке . Вот только на 18 не работает.
Вот рабочая [CB]Memory Monitor | Форум Mozilla Россия
Отсутствует
Как узнать что браузер закрывается а не рестартируется.
Я тут наверно все попробовал 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)
Отсутствует
serg00700 пишет: Здравствуйте. Есть кнопка которая отображает потребление памяти в адресной строке . Вот только на 18 не работает.Вот рабочая [CB]Memory Monitor | Форум Mozilla Россия
Спасибо. Эта работает, но только завышает показания.
Mozilla Firefox - Просто "мега бомба"
Отсутствует