Хотел узнать, надежда есть или никак.
Вызвать меню всех установленных поисковиков в CB easy drag and go,
Сделать так что бы кнопка "Stf" сохраняла файл в нужную папку без запроса и окна сохранения
Stf - сделаю,
CB easy drag and go -
Отредактировано bunda1 (22-10-2012 23:28:01)
Отсутствует
Dumby
С первым кодом, на первый взгляд, все в порядке.
у меня действительно этот код работает, только с небольшим глючком
если так, то может сможешь написать какой-другой код для закрытия группы вкладок? Просто, странный конфликт какой-то...
Отсутствует
Просто, странный конфликт какой-то...
Попробуй заменить
var item = TabView._window.GroupItems._activeGroupItem._children.length; if ( item !== 1) return;
на
И обязательно рестарт.
Отсутствует
Может кому пригодиться, кнопка заменяющая url-addon-bar:
if (location == "chrome://browser/content/browser.xul") { (function (win) { function $(id) { return document.getElementById(id); } var cssStr = (<><![CDATA[ @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); @-moz-document url("chrome://browser/content/browser.xul") { #urlbar-icons > #addon-bar .toolbarbutton-1 > .toolbarbutton-menubutton-dropmarker { border-style: none !important; box-shadow: none !important; padding: 0 0 0 1px !important; } #urlbar-icons > * { padding: 0 3px !important; } #urlbar-icons > #addon-bar, #urlbar-icons > #addon-bar > #status-bar { -moz-appearance: none !important; height: 18px !important; min-height: 18px !important; border-style: none !important; background: transparent !important; -moz-box-align: center !important; padding: 0 !important; margin: 0 !important; box-shadow: none !important; } #urlbar-icons > #addon-bar > toolbaritem { -moz-box-align: center !important; -moz-box-pack: center !important; } #urlbar-icons > #addon-bar .toolbarbutton-1, #urlbar-icons > #addon-bar statusbarpanel, #urlbar-icons > #addon-bar .toolbarbutton-1 > .toolbarbutton-menubutton-button { -moz-appearance: none !important; border-style: none !important; border-radius: 0 !important; padding: 0 3px !important; margin: 0 !important; background: transparent !important; box-shadow: none !important; -moz-box-align: center !important; -moz-box-pack: center !important; } #urlbar-icons > #addon-bar > .toolbarbutton-1, #urlbar-icons > #addon-bar > #status-bar > statusbarpanel { min-width: 18px !important; min-height: 18px !important; } #urlbar-icons > #addon-bar .toolbarbutton-1 > .toolbarbutton-icon, #urlbar-icons > #addon-bar > #status-bar > statusbarpanel > .statusbarpanel-icon { max-width: 18px !important; /* max-height: 18px !important; */ padding: 0 !important; margin: 0 !important; } #urlbar-icons > #addon-bar .toolbarbutton-1 > .toolbarbutton-menubutton-button, #urlbar-icons > #addon-bar .toolbarbutton-1 > .toolbarbutton-menubutton-button > .toolbarbutton-icon { padding: 0 !important; margin: 0 !important; } #urlbar-icons > #addon-bar .toolbarbutton-1:not([disabled="true"]):hover, #urlbar-icons > #addon-bar .toolbarbutton-1:not([disabled="true"])[type="menu-button"]:hover, #urlbar-icons > #addon-bar .toolbarbutton-1:not([disabled="true"])[open="true"], #urlbar-icons > #addon-bar .toolbarbutton-1:not([disabled="true"])[type="menu-button"][open="true"], #urlbar-icons > #addon-bar > #status-bar statusbarpanel:not([disabled="true"]):hover, #urlbar-icons > #addon-bar > #status-bar statusbarpanel:not([disabled="true"])[open="true"] { background-image: -moz-linear-gradient(rgba(242, 245, 249, 0.95), rgba(220, 223, 225, 0.67) 49%, rgba(198, 204, 208, 0.65) 51%, rgba(194, 197, 201, 0.3)) !important; } #urlbar-icons > #addon-bar #addonbar-closebutton, #urlbar-icons > #addon-bar toolbarspring, #urlbar-icons > #addon-bar toolbarspacer, #urlbar-icons > #addon-bar toolbarseparator, #urlbar-icons > #addon-bar > #status-bar > .statusbar-resizerpanel { display: none !important; } } ]]></>).toString(); var style = document.createProcessingInstruction("xml-stylesheet", "title=\"url-addon-bar\" type=\"text/css\"" + " href=\"data:text/css;base64," + btoa(cssStr) + "\""); var main = $("main-window"); document.insertBefore(style, main); var urlbarIcons = $("urlbar-icons"); var addonBar = $("addon-bar"); var browserBottombox = $("browser-bottombox"); win.urlAddonBar = { init: function () { this._isInUrlbar = false; this.toggleUA(); win.addEventListener("beforecustomization", this, true); }, handleEvent: function (e) { switch (e.type) { case "aftercustomization" : win.removeEventListener(e.type, this, false); break; case "beforecustomization" : win.addEventListener("aftercustomization", this, false); break; } this.toggleUA(); }, toggleUA: function () { if (this._isInUrlbar) { browserBottombox.appendChild(addonBar); addonBar.setAttribute("context", "toolbar-context-menu"); addonBar.setAttribute("toolboxid", "navigator-toolbox"); } else { urlbarIcons.insertBefore(addonBar, urlbarIcons.firstChild); addonBar.removeAttribute("context"); addonBar.removeAttribute("toolboxid"); } this._isInUrlbar = !this._isInUrlbar; } }; win.urlAddonBar.init(); win.addEventListener("unload", function (e) { win.removeEventListener("unload", arguments.callee, false); win.removeEventListener("beforecustomization", win.urlAddonBar, true); delete win.urlAddonBar; }, false); })(this); }
Отсутствует
Товарищи, нужна помощь с расширение CustomButtons.
Надеялся с его помощью отключить абсолютно ненужную встроенную функцию: закрытие вкладки при нажатии на ней средней кнопки мыши.
Создал кнопку, в Инициализацию вставил вот такой код:
// If middle click on Tab function DoNotCloseTab(event){ if ( event.button == 1 && event.target.nodeName == 'tab') { event.stopPropagation(); event.preventDefault(); } }; addEventListener("mousedown", DoNotCloseTab, false, gBrowser.mTabContainer);
Не помогло
Сам код отрабатывает, если в функцию DoNotCloseTab вставить доп. действия, они происходят. Но потом всё равно встроенный обработчик закрывает вкладку.
Подскажите, как же не пустить событие дальше??
PS^: может, проблема решается без CustomButtons?
Отсутствует
sergio147
1. замени false на true
2. возможно event.preventDefault(); можно выкинуть
3. возможно нехватает удаления обработчика
UPD: Да и событие - «click», извиняюсь, поторопился...
Отредактировано Dumby (23-10-2012 18:44:51)
Отсутствует
sergio147
gBrowser.mTabContainer.addEventListener("mousedown", function (event) { if ( event.button == 1 && event.target.localName == "tab" ) { event.preventDefault(); event.stopPropagation(); alert("1"); } }, false);
Отсутствует
bunda1
Спасибо за подтверждение.
Таким образом, если игнорировать констукцию вида addEventListener("someEvent", someFunction, useCapture, someNode);
( о её существовании узнал только лишь вчера )
то рабочий код, наверное, такой:
var node = gBrowser.mTabContainer; function DoNotCloseTab(e){ if ( e.button == 1 && e.target.nodeName == 'tab') e.stopPropagation(); } node.addEventListener("click", DoNotCloseTab, true); this.onDestroy = function() { node.removeEventListener("click", DoNotCloseTab, true); };
Отсутствует
Сделал код каторый добавляет в контекстное меню раширеный на странице раширений about:addons новый пункт Открыть папку расширения.
Проблема в том что добавляетса новый пункт и в контекстное меню плагинов и тем, как убрать это.
gBrowser.tabContainer.addEventListener("TabAttrModified", function(event) { // .... if ( event.target.linkedBrowser.currentURI.spec !== getBrowser().currentURI.spec ) return; // try { var popup = gBrowser.contentWindow.document.getElementById("addonitem-popup"); //var type = popup.getAttribute("addontype"); //custombuttons.alertSlide("alert", type); if ( popup && !popup.hasAttribute('OpenAddonHomepage') ) { popup.setAttribute('OpenAddonHomepage', 'true'); var menuitem = document.createElement("menuitem"); menuitem.setAttribute("id", "OpenAddonFolder"); menuitem.setAttribute("label", "Открыть папку расширения"); popup.appendChild(menuitem); gBrowser.contentWindow.document.getElementById("OpenAddonFolder").addEventListener("click", function(event) { var Addons = gBrowser.contentWindow.document.getElementById('addon-list').childNodes; for( var i=0; i < Addons.length; i++ ) { if ( Addons[i].getAttribute('current') == 'true' ) { var value = Addons[i].getAttribute('value'); var dir = Components.classes['@mozilla.org/file/directory_service;1'] .getService(Components.interfaces.nsIProperties) .get('ProfD', Components.interfaces.nsILocalFile); dir.append('extensions'); dir.append( value ); if ( dir.exists() ) dir.launch(); var file = Components.classes['@mozilla.org/file/directory_service;1'] .getService(Components.interfaces.nsIProperties) .get('ProfD', Components.interfaces.nsILocalFile); file.append('extensions'); file.append( value + '.xpi' ) if ( file.exists() ) file.launch(); return; } } }, false); } } catch(e) {} }, false);
Отредактировано bunda1 (23-10-2012 22:49:53)
Отсутствует
bunda1
Сделать addEventListener("popupshowing", ... для контекстного меню и показывать/скрывать добавленный пункт.
А там или проверить, что в menupopup.triggerNode, или смотреть на document.getElementById("categories").selectedItem.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Не работает:
var pop = document.getElementById("addonitem-popup"); pop.addEventListener("popupshowing", function(event) { alert(popup) }, false);
Ошибка: TypeError: pop is null
var popup = gBrowser.contentWindow.document.getElementById("addonitem-popup"); popup.addEventListener("popupshowing", function(event) { alert(popup) }, false);
Ошибка: TypeError: popup is null
Добавлено 23-10-2012 23:30:21
var popup = gBrowser.contentWindow.document.getElementById("addonitem-popup");
popup.addEventListener("popupshowing",...
Можно запустить только если это меню открыта.
Отредактировано bunda1 (23-10-2012 23:30:46)
Отсутствует
добавляетса новый пункт и в контекстное меню плагинов и тем
Да везде на about:addons, наверное...
Код не анализировал, но заметил, что если выбран пункт «Расширения»,
то у ноды: document.getEementById("category-extension")
появляются два дополнительных атрибута: current=true и selected=true
( Attributes Inspector - наше всё ! )
Возможно следует сделать проверку этого...
Отсутствует
Спасибо всем, я разобрался:
gBrowser.addEventListener("popupshowing", function(event) { var popup = gBrowser.contentWindow.document.getElementById("addonitem-popup"); if ( popup == null ) return; var type = popup.getAttribute("addontype"); custombuttons.alertSlide("alert", type); gBrowser.contentWindow.document.getElementById("OpenAddonFolder").hidden = (type !== 'extension'); }, false);
Отредактировано bunda1 (23-10-2012 23:48:49)
Отсутствует
bunda1
Почему то у меня не дружат кнопки "Открыть новый таб двойным кликом левой кнопкой на титлебаре(Titlebar)"(у меня открывает по клику на панели вкладок) и "Двойной клик левой кнопкой на табе, закрыть страницу", по отдельности работают нормально, а если вместе то двойной клик по панели вкладок закрывает вкладку вместо открытия новой. Проверял на чистом профиле.
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
sergio147Выделить кодКод:gBrowser.mTabContainer.addEventListener("mousedown", function (event) {
if ( event.button == 1 && event.target.localName == "tab" ) {
event.preventDefault();
event.stopPropagation();
alert("1");
}
}, false);
bunda1 с alert ("1") работает, вот только зачем мне это окошко при нажатии на вкладку???
Добавлено 25-10-2012 15:25:50
1. замени false на true
2. возможно event.preventDefault(); можно выкинуть
3. возможно нехватает удаления обработчикаUPD: Да и событие - «click», извиняюсь, поторопился...
Dumby,
а вот это работает!!!
Если что, все изменения внёс, но дело, явно, в true. Даже на разбирался, что это за аргумент, поверил на слово.
Спасибо!
Отредактировано sergio147 (25-10-2012 15:25:50)
Отсутствует