Спасибо! Вот теперь не разворачивает! И кстати по моему лиса стала меньше тупить при старте! Можно ли теперь сделать следующее (чтобы довести до идеального): чтобы открытие закладок из chrome://browser/content/places/places.xul происходило так же как и ссылки со страницы в лисе по умолчанию (ну вы в курсе про последовательность: сначала справа от текущей вкладки, затем справа от только что открытой и тд…)
Отредактировано KOT040188 (25-10-2014 01:12:39)
Вы думаете у котов лёгкая жизнь? А вы попробуйте целый день лизать меховую шапку!
Отсутствует
Помогите найти кнопку, которая при нажатии на неё скрывает/показывает добавленную мной через настройки панельку (там где яндекс бары, панель меню и прочее, только с названием своим)
Отсутствует
bunda1, снова типа багрепорт. Использую группы вкладок, в некоторых из них если находится на первой слева вкладке новая вкладка открывается в конце справа, на остальных вкладках рядом. Закрыл такую группу, в другой группе где не было такого глюка он появился…
Отредактировано KOT040188 (27-10-2014 14:16:56)
Вы думаете у котов лёгкая жизнь? А вы попробуйте целый день лизать меховую шапку!
Отсутствует
Уважаемые знатоки, не мог бы кто модифицировать код из 135-го поста на этой странице "Открывать любую новую вкладку справа от текущей, от 24.10.2014" так, чтобы при долгом клике СКМ по ссылке она открывалась справа от текущей?
// Открывать любую новую вкладку справа от текущей, от 24.10.2014. ................................ addEventListener("TabOpen", function(e) { var newTab = e.target; var lab = newTab.label; var tabpos = gBrowser.selectedTab._tPos; var newTabLab = gBrowser.mStringBundle.getString("tabs.emptyTabTitle"); if ( tabpos == 0 && lab == newTabLab ) return; // если восстановление сессии if ( tabpos == 0 && lab == '' ) return; // если восстановление сессии с Bookmarks Tab if ( new Error().stack.indexOf("openContainer") !== -1 ) return; // если открыть всё во вкладках из папки закладок if ( /handleLinkClick/.test(new Error().stack) ) return; // если открыть ссылку по СКМ gBrowser.moveTabTo( e.target, tabpos + 1 ); // автоматически закрывать "custombutton" вкладку if ( lab.startsWith("custombutton://%") ) setTimeout(function() gBrowser.removeTab( newTab ), 0); }, false, gBrowser.tabContainer );
Чтобы не делать лишней работы, достаточно, чтобы это поведение реализовывалось только на обычных ссылках (интернет-страничек). Но если так будет и из "Журнала" и "Закладок", то пусть, тоже хорошо. Просто для них у меня уже работает нижеприведённый код и я не знаю, не будет ли конфликтов каких-то...
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // https://forum.mozilla-russia.org/viewtopic.php?pid=626886#p626886 // Kод даёт возможность открывать закладки средним кликом на закладке не закрывая меню закладок. Код не работает в боковой панели закладок. // Открывать закладки средним кликом в новой вкладке не закрывая меню закладок, от 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); })(); ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // https://forum.mozilla-russia.org/viewtopic.php?pid=667273#p667273 // Открывать средним кликом вкладки из Журнала (кроме "Показать весь журнал") в новой вкладке, не закрывая меню Журнал, от 6.11.2014. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// (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")); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //https://forum.mozilla-russia.org/viewtopic.php?pid=607274#p607274 //Автор: Dumby, bunda1 Версия: от 05-11-2014 19:47:41 //Описание: Kод открывает библиотеку как активную вкладку рядом с текущей вкладкой и открывает в в библиотеке: //1. папку закладок которая была открыта перед закрытием библиотеки если в главном меню или в меню кнопки меню вы нажали Показать все закладки //2. Загрузки или Неподшитые закладки если в главном меню или в меню кнопки меню вы нажали эти пункты, //3. первую папку истории( Сегодня ) отсортированную по адресу если в главном меню или в меню кнопки меню вы нажали Показать весь журнал, в коде можно // отключить сортировку по адресу и указать другую папку истории для открытия. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Открывать библиотеку во вкладке и последнюю активную папку библиотеки, от 05.11.2014. ............................ (function () { var historyFolderNum = 1; // папка истории которую откроет код var sortHistoryFolder = true; // сортировать папку истории которую откроет код var command; const pn = "CB.lastUsedLibraryFolder"; const library = "chrome://browser/content/places/places.xul"; // Перехватывать открытие библиотеки и открывать её в вкладке рядом с текущей .... function libraryInTab(e) { command = e.target.getAttribute("oncommand"); if ( !/showPlacesOrganizer|DownloadsUI|DownloadsPanel/.test( command ) ) return; if ( /showPlacesOrganizer|UnfiledBookmarks/.test( command ) && e.type == 'click' ) return; e.stopPropagation(); // закрыть все вкладки библиотеки кроме первой .... var libTab = null; Array.slice( gBrowser.tabs ).forEach(function(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 ); addEventListener("click", libraryInTab, true, document.getElementById('appmenuSecondaryPane') ); // Открывать и запоминать последнюю активную папку если библиотека открыта как вкладка .... function openLastUsedFolder( e ) { var win = e ? e.target.defaultView : content.document.defaultView; if ( win.location != library ) return; // получить нужную папку try { var value = cbu.getPrefs( pn ) } catch(e) { value = '' }; if ( /DownloadsUI|DownloadsPanel/.test( command ) ) value = 'place:transition=7&sort=4'; if ( /UnfiledBookmarks/.test( command ) ) value = 'place:folder=UNFILED_BOOKMARKS&excludeItems=1&expandQueries=0'; // закрыть меню большой кнопки и кнопки загрузок setTimeout(function() { try { document.getElementById("appmenu-popup").hidePopup(); document.getElementById("downloadsPanel").hidePopup(); } catch(e) {} }, 10 ); // открыть нужную папку используя рекурсию (function f() { if ( win.location != library ) return; try { if ( /'History'/.test( command ) ) { var doc = win.document; var view = doc.getElementById('placesList').view; if ( view ) view.selection.select( historyFolderNum ); // открыть указанную папку // сортировать папку истории по адресу if ( sortHistoryFolder && view ) { doc.getElementById('viewMenu').open = true; doc.getElementById('viewSort').open = true; doc.getElementById('viewMenu').open = false; doc.getElementById('menucol_placesContentUrl').doCommand(); } } else { win.PlacesOrganizer.location = value; win.PlacesOrganizer._places.focus(); } } catch(e) { setTimeout(function() f(), 0) }; })(); // запоминать последнюю папку при закрытии библиотеки if ( e == undefined ) return; win.addEventListener("unload", function f(e) { win.removeEventListener( e.type, f); var loc = win.PlacesOrganizer.location; /place:folder|place:sort/.test( loc ) && cbu.setPrefs( pn, loc ); }); }; addEventListener("DOMContentLoaded", openLastUsedFolder, false, gBrowser ); })();
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // https://github.com/Infocatcher/Custom_Buttons/blob/master/code_snippets/mergeInitialization.js // Example for safely use only one button for initialization of many "buttons" without UI (Для любителей засовывать кучу разных кодов в инициализацию одной кнопки). //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var _destructors = []; function destructor() { var args = arguments; _destructors.forEach(function(destructor) { try { destructor.apply(this, args); } catch(e) { Components.utils.reportError(e); } }, this); } if("defineProperty" in Object) { // Firefox 4+ Object.defineProperty(this, "onDestroy", { get: function() { return _destructors.length ? destructor : undefined; }, set: function(f) { _destructors.push(f); }, enumerable: true, configurable: true }); } else { this.__defineGetter__("onDestroy", function() { return _destructors.length ? destructor : undefined; }); this.__defineSetter__("onDestroy", function(f) { _destructors.push(f); }); }
Отсутствует
Александр Колесников
(() => { const delay = 500; var longMiddleClick = false, mousedownTime = 0; var handler = { handleEvent: e => e.button == 1 && handler[e.type](), mousedown: () => mousedownTime = Date.now(), mouseup: () => setTimeout(() => longMiddleClick = false, 50, longMiddleClick = Date.now() - mousedownTime > delay ) }; for(var type of ["down", "up"]) addEventListener("mouse" + type, handler); addEventListener("TabOpen", e => longMiddleClick && gBrowser.moveTabTo(e.target, gBrowser.selectedTab._tPos + 1) , false, gBrowser.tabContainer); })();
Отсутствует
Dumby Спасибо, работает из на ссылках, и из Закладок\Журнала! Захотелось JS выучить, хоть я и самоучка в том, что связано с компами :-)
Отсутствует
Никак не получается отключить стандартное меню по ПКМ. Кусок кода:
if (inspector4pda.user.id) {
inspector4pda.vars.getPrefs();
switch (e.button) {
case 0:
//LMB
inspector4pda.toolbar.bClickEvent(inspector4pda.vars.click_action, e);
break;
case 2:
//MMB
inspector4pda.toolbar.bClickEvent(inspector4pda.vars.MMB_click_action, e);
break;
}
} else {
inspector4pda.cScript.getData(function(){
if (!inspector4pda.cScript.successLastRequest) {
inspector4pda.cScript.siteUnavailableNotification();
} else if (!inspector4pda.user.id) {
inspector4pda.utils.openPage(inspector4pda.toolbar.urls.login);
}
});
}
},
На форуме
Всем привет. Есть такое расширение Double click close tab. Можно его как то заменить с помощью сабжа. Конкретно из функционала интересует закрытие текущей вкладки по двойному нажатию правой кнопкой мыши внутри страницы. И еще расширение Scrollbar anywhere, позволяющее листать страницу при зажатой правой клавиши мыши. Заранее благодарю за помощь.
Отредактировано zoomlin (05-02-2015 11:54:32)
Отсутствует
Всем привет. Есть такое расширение Double click close tab. Можно его как то заменить с помощью сабжа. Конкретно из функционала интересует закрытие текущей вкладки по двойному нажатию правой кнопкой мыши внутри страницы.
// Закрыть вкладку двойным правым кликом, от 05.02.2015. ................................ addEventListener("dblclick", (e)=>{ if ( e.button == 2 ) { e.preventDefault(); gBrowser.removeCurrentTab(); document.getElementById("contentAreaContextMenu").hidePopup(); } }, false, gBrowser );
Добавлено 05-02-2015 20:16:12
И еще расширение Scrollbar anywhere, позволяющее листать страницу при зажатой правой клавиши мыши.
А вот это так просто не сделать, разве только переделать для Сustom Buttons этот код: https://github.com/ardiman/userChrome.j … grabscroll
Отредактировано bunda1 (05-02-2015 20:16:12)
Отсутствует
Благодарю, Закрыть вкладку двойным правым кликом работает. Еще у меня установлено расширение dblclicker(открытие ссылок в новом табе по двойному левому клику) и auto context(автоматическое открытие контекстного меню при выделении текста). Наверно их тоже можно заменить?
Отредактировано zoomlin (06-02-2015 10:08:28)
Отсутствует
Приветствую.
Есть расширение шикарное и хотелось бы знать можно ли его сделать чисто кнопкой, ибо:
1. расширение требует пеерзагрузки бравзера, а постоянно работающее оно не нужно.
2. расширение состоит из одного скрипта внутри.
Называется HTTP Request Logger и делает только одно - пишет все запросы в файл.txt на рабочем столе.
Скрипт который внутри (и это единственное из чего состоит расширение, ну еще манифест) вот:
Components.utils.import('resource://gre/modules/XPCOMUtils.jsm'); function HttpRequestLogger() { var httpRequestLogger = { observe: function(subject, topic, data) { if (topic == "http-on-modify-request") { var httpChannel = subject.QueryInterface(Components.interfaces.nsIHttpChannel); var ref = httpChannel.referrer ? httpChannel.referrer.spec : "(none)"; var buffer = ref + " " + httpChannel.requestMethod + " " + httpChannel.URI.spec + "\n"; fos.write(buffer, buffer.length); } } }; var file = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("Desk", Components.interfaces.nsIFile); file.append("http-request-log.txt"); var fos = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream); // PR_WRONLY | PR_CREATE_FILE | PR_APPEND fos.init(file, 0x02 | 0x08 | 0x10, -1, 0); var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService); observerService.addObserver(httpRequestLogger, "http-on-modify-request", false); } HttpRequestLogger.prototype.classID = Components.ID('{c4a9bb50-b9b2-11e0-a4dd-0800200c9a66}'); HttpRequestLogger.prototype.classDescription = 'Http Request Logger XPCOM Component'; HttpRequestLogger.prototype.contractID = '@prekageo/HttpRequestLogger;1'; var NSGetFactory = XPCOMUtils.generateNSGetFactory([HttpRequestLogger]);
(none) GET http://s3.dotua.org/fsua_items/cover/00/18/73/9/00187342.jpg (none) GET http://s1.dotua.org/fsua_items/cover/00/37/41/9/00374195.jpg http://fs.to/video/serials/fl_our/?page=2 GET http://fs.to/video/serials/i4ELKIr7MQTKe8iPEROuVgI-chastnyj-zakaz.html http://fs.to/video/serials/fl_our/?page=2 GET http://fs.to/video/serials/fl_our/?page=4 (none) GET http://fsua.dotua.org/cssmin/v957992426/default.aimg.min.css (none) GET http://fsua.dotua.org/cssmin/v245054101/theme-video.aimg.min.css (none) POST http://q77.queuev4.vk.com/im357 (none) POST http://q77.queuev4.vk.com/im357 (none) GET http://myowndesign.com.ua/mod/vk/DarkSide/upload.gif
Отсутствует
Приятным будет даже просто вердикт от гуру со словами:
- ДА можно это сделать в CB. Но мне лень/нихачу/нимагу/нежелаю - но знаю что МОЖНО! Дерзай одэпт/глупец/соискатель - это возможно в CB 100% искай , мудри, пробуй, учись !
- НЕТ, это низзя сделать средствами CB ибо ... ! [памамушта-патаму] ита дело доступно только из расширений и именно является Restartless фишкой !
...
Отсутствует
мне лень/нихачу/нимагу/нежелаю
Уговорил. Сам поправь, если что не так.
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%3EUnnamed%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/AAAA/wAAAP/AwMD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/wMDA/wAAAP8AAAD/wMDA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8DAwP8AAAD/AAAA/8DAwP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AwMD/AAAA/wAAAP/AwMD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wMDA/wAAAP8AAAD/wMDA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8DAwP8AAAD/AAAA/8DAwP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AwMD/AAAA/wAAAP/AwMD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wMDA/wAAAP8AAAD/wMDA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8DAwP8AAAD/AAAA/8DAwP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AwMD/AAAA/wAAAP/AwMD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wMDA/wAAAP8AAAD/wMDA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8DAwP8AAAD/AAAA/8DAwP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP/AwMD/AAAA/wAAAP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AACsQQAArEEAAKxBH/isQR/4rEEf+KxBH/isQR/4rEEf+KxBH/isQR/4rEEf+KxBH/isQQAArEEAAKxBAACsQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5BgBrowser.currentURI.spec%20%3D%3D%20%22about%3Acustomizing%22%20%7C%7C%20%28%28%29%20%3D%3E%20%7B%0A%09var%20fileName%20%3D%20%22http-request-log.txt%22%3B%0A%09var%20file%20%3D%20Services.dirsvc.get%28%22Desk%22%2C%20Ci.nsIFile%29%3B%0A%09file.append%28fileName%29%3B%0A%0A%09var%20obsId%20%3D%20%22httpRequestLogger%22%3B%0A%09var%20pn%20%3D%20%22CB.%22%20+%20obsId%20+%20%22.on%22%3B%0A%09cbu.isPref%28pn%2C%20false%29%3B%0A%09var%20pref%20%3D%20Application.prefs.get%28pn%29%3B%0A%0A%09function%20obsConstructor%28%29%20%7B%0A%09%09var%20obs%20%3D%20Application.storage.get%28obsId%2C%20null%29%3B%0A%09%09if%20%28%21obs%29%20%7B%0A%09%09%09obs%20%3D%20%7B%0A%09%09%09%09topic%3A%20%22http-on-modify-request%22%2C%0A%09%09%09%09init%3A%20function%28%29%20Services.obs.addObserver%28this%2C%20this.topic%2C%20false%29%2C%0A%09%09%09%09destroy%3A%20function%28%29%20%7B%0A%09%09%09%09%09try%20%7BServices.obs.removeObserver%28this%2C%20this.topic%29%3B%7D%0A%09%09%09%09%09catch%28ex%29%20%7BCu.reportError%28ex%29%3B%7D%0A%09%09%09%09%7D%2C%0A%09%09%09%09observe%3A%20function%28subj%29%20%7B%0A%09%09%09%09%09var%20channel%20%3D%20subj.QueryInterface%28Ci.nsIHttpChannel%29%3B%0A%09%09%09%09%09var%20ref%20%3D%20channel.referrer%20%3F%20channel.referrer.spec%20%3A%20%22%28none%29%22%3B%0A%09%09%09%09%09var%20str%3D%20ref%20+%20%22%20%22%20+%20channel.requestMethod%20+%20%22%20%22%20+%20channel.URI.spec%20+%20%22%5Cr%5Cn%22%3B%0A%09%09%09%09%09str%20%3D%20this.suc.ConvertFromUnicode%28str%29%3B%0A%09%09%09%09%09this.fos.write%28str%2C%20str.length%29%3B%0A%09%09%09%09%7D%2C%0A%09%09%09%09get%20fos%28%29%20%7B%0A%09%09%09%09%09delete%20this.fos%3B%0A%09%09%09%09%09var%20fos%20%3D%20Cc%5B%22@mozilla.org/network/file-output-stream%3B1%22%5D.createInstance%28Ci.nsIFileOutputStream%29%3B%0A%09%09%09%09%09//%20PR_WRONLY%20%7C%20PR_CREATE_FILE%20%7C%20PR_APPEND%0A%09%09%09%09%09fos.init%28file%2C%20parseInt%28%220x02%22%29%20%7C%20parseInt%28%220x08%22%29%20%7C%20parseInt%28%220x10%22%29%2C%20-1%2C%200%29%3B%0A%09%09%09%09%09return%20this.fos%20%3D%20fos%3B%0A%09%09%09%09%7D%2C%0A%09%09%09%09get%20suc%28%29%20%7B%0A%09%09%09%09%09delete%20this.suc%3B%0A%09%09%09%09%09var%20suc%20%3D%20Cc%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Ci.nsIScriptableUnicodeConverter%29%3B%0A%09%09%09%09%09suc.charset%20%3D%20%22utf-8%22%3B%0A%09%09%09%09%09return%20this.suc%20%3D%20suc%3B%0A%09%09%09%09%7D%0A%09%09%09%09%0A%09%09%09%7D%3B%0A%09%09%09Application.storage.set%28obsId%2C%20obs%29%3B%0A%09%09%09obs.init%28%29%3B%0A%09%09%7D%0A%09%7D%0A%09function%20obsDestructor%28reason%29%20%7B%0A%09%09if%20%28%21%22update%20delete%22.contains%28reason%29%29%20return%3B%0A%09%09var%20obs%20%3D%20Application.storage.get%28obsId%2C%20null%29%3B%0A%09%09if%20%28obs%29%20%7B%0A%09%09%09obs.destroy%28%29%3B%0A%09%09%09Application.storage.set%28obsId%2C%20null%29%3B%0A%09%09%7D%0A%09%09reason%20%3D%3D%20%22delete%22%20%26%26%20pref.reset%28%29%3B%0A%09%7D%0A%09addDestructor%28reason%20%3D%3E%20%7B%0A%09%09obsDestructor%28reason%29%3B%0A%09%09setTimeout%28function%28%29%20%7B%0A%09%09%09custombuttons.palette.querySelector%28%27toolbarbutton%5Bid%3D%22%27%20+%20_id%20+%20%27%22%5D%27%29%20%26%26%20obsDestructor%28%22delete%22%29%3B%0A%09%09%7D%2C%20500%29%3B%0A%09%7D%29%3B%0A%0A%09var%20imgON%20%3D%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/AAAA/wAAAP/AwMD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/wMDA/wAAAP8AAAD/wMDA/wAAAP9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/AAAA/8DAwP8AAAD/AAAA/8DAwP8AAAD/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/wAAAP/AwMD/AAAA/wAAAP/AwMD/AAAA/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf8AAAD/wMDA/wAAAP8AAAD/wMDA/wAAAP9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/AAAA/8DAwP8AAAD/AAAA/8DAwP8AAAD/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/wAAAP/AwMD/AAAA/wAAAP/AwMD/AAAA/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf8AAAD/wMDA/wAAAP8AAAD/wMDA/wAAAP9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/AAAA/8DAwP8AAAD/AAAA/8DAwP8AAAD/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/wAAAP/AwMD/AAAA/wAAAP/AwMD/AAAA/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf8AAAD/wMDA/wAAAP8AAAD/wMDA/wAAAP9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/AAAA/8DAwP8AAAD/AAAA/8DAwP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP/AwMD/AAAA/wAAAP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%22%3B%0A%09function%20setState%28on%29%20%7B%0A%09%09on%20%3F%20obsConstructor%28%29%20%3A%20obsDestructor%28%22delete%22%29%3B%0A%09%09pref.value%20%3D%20on%3B%0A%09%09var%20src%20%3D%20on%20%3F%20imgON%20%3A%20self.image%3B%0A%09%09var%20en%20%3D%20Services.wm.getEnumerator%28%22navigator%3Abrowser%22%29%3B%0A%09%09while%28en.hasMoreElements%28%29%29%20%7B%0A%09%09%09var%20doc%20%3D%20en.getNext%28%29.document%3B%0A%09%09%09var%20btn%20%3D%20doc.getElementById%28_id%29%3B%0A%09%09%09var%20%5Bimg%5D%20%3D%20doc.getAnonymousNodes%28btn%29%3B%0A%09%09%09if%20%28img%29%20img.src%20%3D%20src%3B%0A%09%09%7D%0A%09%7D%0A%09setState%28pref.value%29%3B%0A%09self.onclick%20%3D%20e%20%3D%3E%20%7B%0A%09%09if%20%28%21e.button%29%20setState%28%21pref.value%29%3B%0A%09%09else%20if%20%28e.button%20%3D%3D%201%29%20file.exists%28%29%20%26%26%20file.launch%28%29%3B%0A%09%7D%0A%7D%29%28%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%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%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E
Отсутствует
Отсутствует
Перешел с PM24.7 на Cyberfox 37 и обнаружил, что не работает кнопка Add-ons Manager Context Menu. Кто-нибуть сможет помочь?
Отсутствует
Можно ли заменить Muter CB-кнопкой
Отсутствует
Можно ли сделать кнопку для https://addons.mozilla.org/ru/firefox/addon/export-cookies/?src=api
и если можно в кнопке указать папку сохранения. Или еще лучше сохранять в папку профиля как кнопка "HTTP Request Logger"
foxboyПочему бы не обойтись вообще без кнопок и расширений?
Потому как портабле, а на ХР этого нет.
Отсутствует
на ХР этого нет
Сто лет не пользовался, но на 99.999% процентов уверен, что микшер громкости в нем есть.
Про кнопку из muter'а можете забыть - он с бинарниками. Да и он сам скоро отвалится.
Добавлено 11-08-2015 04:27:56
но на 99.999% процентов уверен
Гугл подтверждает.
Отредактировано turbot (11-08-2015 04:27:56)
Отсутствует
Гугл подтверждает.
Ничего он не подтверждает. Кто-то сказал, что нет микшера, я не говорил. Он есть, но он не умеет регулировать громкость приложений, всего навсего такая мелочь. В 7 есть, это да. Можно вообще подсунуть фальшивый msacm32.dll и звука не будет. Речь об отключении/включении звука с панели браузера.
Отсутствует
foxboy
Зачем вообще на браузер навешивать подобный функционал, если можно удобно откл/вкл звук кликом по панели задач. Глобально, функционально, и не захламлять браузер всякой ерундой.
https://irzyxa.wordpress.com/tag/volume2/
или
http://www.nirsoft.net/utils/volumouse.html
Отредактировано villa7 (11-08-2015 12:38:40)
Лучше спросить у знающих - чем лезть не зная.
Отсутствует