turbot
Попробовал, не получилось. Сейчас заменил целиком, как Вы написали.
заменить url("chrome://mozapps/skin/extensions/extensions.svg#greyscale") на grayscale(1)
Работает, спасибо.
Отсутствует
Может кто нибудь починить Disable style
https://forum.mozilla-russia.org/viewto … 82#p397782
стиль отключает, а назад не включает.
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
turbot,
Попробовал, не получилось. Сейчас заменил целиком, как Вы написали.
turbot пишет: заменить url("chrome://mozapps/skin/extensions/extensions.svg#greyscale") на grayscale(1)Работает, спасибо.
Есть еще вариант, вот для примера иконка:
с
и с
url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale")
Отсутствует
Может кто нибудь починить Disable style
https://forum.mozilla-russia.org/viewto … 82#p397782
стиль отключает, а назад не включает.
А так пробовал ?
gPageStyleMenu._getStyleSheetInfo().authorStyleDisabled ? gPageStyleMenu.switchStyleSheet("") : gPageStyleMenu.disableStyle();
Отсутствует
bunda1
В кнопках https://forum.mozilla-russia.org/viewto … 06#p543706, https://forum.mozilla-russia.org/viewto … 58#p625358 и https://forum.mozilla-russia.org/viewto … 66#p643966 (а может и еще в каких) стоило бы заменить url("chrome://mozapps/skin/extensions/extensions.svg#greyscale") на grayscale(1), а то с 36-ой версии их убрали.
Спасибо за ценные замечания, исправил
Отсутствует
Пользуюсь кнопкой для коротких ссылок
(function(location){ var icon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNzQxNEMxNjhCQkFFMzExQjBBMUQ4Qzc3OUM1QjM5QyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RUQ1MTc3NUJBQUYxMUUzQTcwOUY5Qzg3QkE3RDUwRSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RUQ1MTc3NEJBQUYxMUUzQTcwOUY5Qzg3QkE3RDUwRSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA4NDE0QzE2OEJCQUUzMTFCMEExRDhDNzc5QzVCMzlDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA3NDE0QzE2OEJCQUUzMTFCMEExRDhDNzc5QzVCMzlDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+pwkIsgAAA5BJREFUeNq0l11IU2EYx9+zneFyynIFFUXDwmBkDNHYVaJhXVTYh4VUtIu+KIToQ/u4yoiWFBkkfVwUBHURZhRh3hSVN90oJESDunARBactE1KHm9P1f8ZzYm4785zDfODHznbec97nfd7n/T/PpGQyKQppvb29orW1VZSUlNDXleAs2AGWg5/gBbgGvtMAi5g/qwVvQQtPLvizhX+vnRcHZFmmjwpe6WqNYfT7c7BGzrwzPj4uIpGIkCTJlAOKogiLxXIRl2VzDHWB9iwH+vv7RVtbm3A4HGaDsLC4uHizzrGbshyYmZkRiURCTE9Pm5odkXMROocvlnO8gEKYwqQ5aR3AqmNsvJBJuBCcp5MIbDqf+SIXYGI7OAjOgFUGn+3KuQU6jUK8F5wDlSYcfwQeyJlKSEmow7aDC8Cncf8luA42gBNgqfruaDSq4PIOCNBPUlNTU/qDXujAlnA4XIEk/IvvH3hPo3x/I0/coDHxO3AVvE7PdLAep2qJ0+n8VVdXN4Ao//4f8crKVPRsrM8tVqvVxmqm2idwA2wFezQmHgQd4JlWyGKxmPB4PKK7u3u2chYVFdHnLXBM49l14KHGvSCH+jFIzLVvtAW05el5RkttzjO5ln0DN8H9tO0xVzvAaSNSD25zEv0pSPECVQbGnwJPClk9jSrhNhNik9p7SsKpqamcDnw08K79PP4uWKvnASpqLpdL1NTUCDpxmUInVVdXN5sM6yR4SnIKBjTGuLFyu8/nCzc2No6qSktAD1JtGzkgeEX5TkKMK9yCXItk5etiISI7Ao4CDyazI/TheDxO4nQFpf4rtEb09fWJ8vJyIdPesFxOagjRZ3aOsv4k2AccGTVhJ/OKnd2l3qRzj/ctA34SM+TDbszxXi33RqVY7feOA3rhIhMJqcCBqp6eHsXtdgsps/hQW00tGbfV+WwFOAwO8bXuEwEHLsGBdnLAoiaFioFO6Ac1lawj1AuEDASiIV2IZpmJPypU2TrBSJ6akdUL0vbTdFkOUEM6NjZmvC2y28M2m03vAsjpZM4I0NHw+/30QkMODA0NDYZCoVFke5mO4W80t8Dr9aYwaoFAIBIMBjtLS0sv6yho98zWAk0jnUcSd3BvoGUj3EcqmhEwa1A6MTExkcApOkB/sFgNPdw1R7hNC+AYppRQzRWpUH/PkQNieHhYUCKm1wJ2IAxG1VNGx72+vj6lNf8EGADGSCd20PLWBgAAAABJRU5ErkJggg=='; if (location.protocol.startsWith('http')) { var xhr = new XMLHttpRequest(); var request = { longUrl : location.toString(), key : '{YOUR_API_KEY}' } xhr.onload = function(){ var link = JSON.parse(xhr.response).id; const gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper); gClipboardHelper.copyString(link) try { Components.classes["@mozilla.org/alerts-service;1"].getService(Components.interfaces.nsIAlertsService) .showAlertNotification(icon, link, 'Скопирован в буфер обмена', false, "", null, ""); } catch (e) {} } xhr.open('POST', 'https://www.googleapis.com/urlshortener/v1/url', true); xhr.setRequestHeader("Content-type", "application/json"); xhr.send(JSON.stringify(request)); } })(content.window.location);
Отредактировано Mishania (21-03-2015 19:22:31)
Отсутствует
Пользуюсь кнопкой для коротких ссылок
На 36.0.3 перестала работать. Поправьте пожалуйста, или подскажите другую.
На FF24 тоже не работает, наверно сервис коротких ссылок изменился или глючит.
Отсутствует
Mishania
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
(function(location){ var icon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNzQxNEMxNjhCQkFFMzExQjBBMUQ4Qzc3OUM1QjM5QyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RUQ1MTc3NUJBQUYxMUUzQTcwOUY5Qzg3QkE3RDUwRSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RUQ1MTc3NEJBQUYxMUUzQTcwOUY5Qzg3QkE3RDUwRSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA4NDE0QzE2OEJCQUUzMTFCMEExRDhDNzc5QzVCMzlDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA3NDE0QzE2OEJCQUUzMTFCMEExRDhDNzc5QzVCMzlDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+pwkIsgAAA5BJREFUeNq0l11IU2EYx9+zneFyynIFFUXDwmBkDNHYVaJhXVTYh4VUtIu+KIToQ/u4yoiWFBkkfVwUBHURZhRh3hSVN90oJESDunARBactE1KHm9P1f8ZzYm4785zDfODHznbec97nfd7n/T/PpGQyKQppvb29orW1VZSUlNDXleAs2AGWg5/gBbgGvtMAi5g/qwVvQQtPLvizhX+vnRcHZFmmjwpe6WqNYfT7c7BGzrwzPj4uIpGIkCTJlAOKogiLxXIRl2VzDHWB9iwH+vv7RVtbm3A4HGaDsLC4uHizzrGbshyYmZkRiURCTE9Pm5odkXMROocvlnO8gEKYwqQ5aR3AqmNsvJBJuBCcp5MIbDqf+SIXYGI7OAjOgFUGn+3KuQU6jUK8F5wDlSYcfwQeyJlKSEmow7aDC8Cncf8luA42gBNgqfruaDSq4PIOCNBPUlNTU/qDXujAlnA4XIEk/IvvH3hPo3x/I0/coDHxO3AVvE7PdLAep2qJ0+n8VVdXN4Ao//4f8crKVPRsrM8tVqvVxmqm2idwA2wFezQmHgQd4JlWyGKxmPB4PKK7u3u2chYVFdHnLXBM49l14KHGvSCH+jFIzLVvtAW05el5RkttzjO5ln0DN8H9tO0xVzvAaSNSD25zEv0pSPECVQbGnwJPClk9jSrhNhNik9p7SsKpqamcDnw08K79PP4uWKvnASpqLpdL1NTUCDpxmUInVVdXN5sM6yR4SnIKBjTGuLFyu8/nCzc2No6qSktAD1JtGzkgeEX5TkKMK9yCXItk5etiISI7Ao4CDyazI/TheDxO4nQFpf4rtEb09fWJ8vJyIdPesFxOagjRZ3aOsv4k2AccGTVhJ/OKnd2l3qRzj/ctA34SM+TDbszxXi33RqVY7feOA3rhIhMJqcCBqp6eHsXtdgsps/hQW00tGbfV+WwFOAwO8bXuEwEHLsGBdnLAoiaFioFO6Ac1lawj1AuEDASiIV2IZpmJPypU2TrBSJ6akdUL0vbTdFkOUEM6NjZmvC2y28M2m03vAsjpZM4I0NHw+/30QkMODA0NDYZCoVFke5mO4W80t8Dr9aYwaoFAIBIMBjtLS0sv6yho98zWAk0jnUcSd3BvoGUj3EcqmhEwa1A6MTExkcApOkB/sFgNPdw1R7hNC+AYppRQzRWpUH/PkQNieHhYUCKm1wJ2IAxG1VNGx72+vj6lNf8EGADGSCd20PLWBgAAAABJRU5ErkJggg=='; if (location.protocol.startsWith('http')) { var xhr = new XMLHttpRequest(); var request = { longUrl : location.toString() } xhr.onload = function(){ var link = JSON.parse(xhr.response).id; const gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper); gClipboardHelper.copyString(link) try { Components.classes["@mozilla.org/alerts-service;1"].getService(Components.interfaces.nsIAlertsService) .showAlertNotification(icon, link, 'Скопирован в буфер обмена', false, "", null, ""); } catch (e) {} } xhr.open('POST', 'https://www.googleapis.com/urlshortener/v1/url?key=AIzaSyC7uWVak6m9AFIMORinK4gfNZZ5IrNPgKA', true); xhr.setRequestHeader("Content-type", "application/json"); xhr.send(JSON.stringify(request)); } })(content.window.location);
Отредактировано Lex1 (21-03-2015 20:55:13)
Отсутствует
Кнопка Linkification (Делает текстовые ссылки кликабельными) но для этого кнопку нужно каждый раз кликать)
Можно ли сделать так, чтобы она автоматом сканировала открывающуюся страницу на наличие ссылок без клика по кнопке???
Отсутствует
Quartz1t
Можно клавиатурное сочетание повесить или жест. Для FireGestures такой:
P.S. "Linkification" - название кнопки, т.е. то, что при редактировании кнопки "Имя (N):"
Отсутствует
Доброго времени суток.
Имеется кнопка, собранная по видимому из кусков кода для открытия закладок, но тем не менее работающая.
/*Initialization Code*/ this.tooltipText = "L = Открыть в боковой панели\n" + "M = Открыть в окне\n" + "R = Открыть во вкладке\n\n" + "Shift-R = Меню кнопки"; this. onclick = function (event) { if (event. button == 0) PlacesCommandHook.showPlacesOrganizer('AllBookmarks') if (event. button == 1) toggleSidebar('viewBookmarksSidebar'); if (event. button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { getBrowser (). selectedTab = getBrowser (). addTab ("chrome://browser/content/places/places.xul") } if(event.button == 2 && !event.shiftKey && !event.altKey && !event.metaKey) { event.preventDefault(); event.stopPropagation(); } };
Можно-ли как-нибудь на ЛКМ повесить функционал "родной" кнопки, не библиотеки (редактора закладок) как сделано, а целиком : меню с закладками и пунктами "показать закладки", "редактировать закладки" ну и ниже сами закладки. То есть :
Решения на форуме не нашёл (пропустил ?)
Спасибо.
Отсутствует
Мне кажется тут легче повесить на "родную" кнопку дополнительные клики, пример:
addEventListener("click", function(e) { if ( e.button == 1 ) { alert("1"); } if ( e.button == 2 ) { e.preventDefault(); e.stopPropagation(); alert("2"); } }, false, document.getElementById("bookmarks-menu-button") );
Отсутствует
if ( !this.lastChild ) { var mc = document.getElementById("bookmarksMenuPopup"); var mcc = mc.cloneNode( true ); this.appendChild( mcc ); } var bo = document.getBoxObjectFor( this ); this.lastChild.showPopup ( this, -1, -1, "popup", "bottomleft", "topleft" );
Отсутствует
bunda1
у кнопки Запуск VBScript обнаружился баг:
вводим простой скрипт
MsgBox "Как видно?"
запускаем и видим в сообщении 0: 284=>?
это изза перекодировки при сохранении. UTF-8 решил бы проблему но vbs его не понимает..пичалька
Да, проблема
Отредактировано bunda1 (25-03-2015 08:11:51)
Отсутствует
UTF-8 решил бы проблему но vbs его не понимает..пичалька
Вот так можно:
var data = self.Help; var suc = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"] .createInstance(Components.interfaces.nsIScriptableUnicodeConverter); suc.charset = "UTF-16"; data = suc.ConvertFromUnicode(data); var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.append("runVBScript.vbs"); custombuttonsUtils.writeFile(file.path, data); file.launch();
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Infocatcher
Отлично, большое спасибо
Кстати, так тоже работает:
var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.append("runVBScript.vbs"); custombuttonsUtils.writeFile( file.path, convertFromUnicode("UTF-16", self.Help) ); file.launch();
Добавлено 25-03-2015 19:33:52
кстати а ведь спич апи можно заюзать вместо заморочек со звуковыми файлами для сигнализации о каких либо событиях
CreateObject("SAPI.SpVoice").Speak " user is online "
CreateObject("SAPI.SpVoice").Speak " meow!"
или даже так
CreateObject("SAPI.SpVoice").Speak "~waka~waka~waka~/~waka~waka~waka~/~waka~waka~waka~/~waka~waka~waka~/"
Прикольно, смотрю ты что то соображаешь в VBScript, а не подскажешь код для кнопки который после закрытия Firefox выключает программу или процесс через:
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colProcessList = objWMIService.ExecQuery _ ("Select * from Win32_Process Where Name = 'Notepad.exe'") For Each objProcess in colProcessList objProcess.Terminate() Next
Вот тут есть что то похожее 26-05-2006 22:53:49 но код также запускает Firefox что не нужно.
Отредактировано bunda1 (25-03-2015 19:33:52)
Отсутствует
Я не знаю за VBSscript, просто может каг идея...
код для кнопки который после закрытия Firefox выключает программу или процесс
Можно сделать процесс Firefox доченним и запускать его из своего скрипта, который и будет ждать закрытия бравзера и затем выполнять остальной код по уничтожению.
Грубый но рабочий пример на cmd :
Переписать тоже самое на VBS думаю можно Т.е. отдать ОС всю эту суету по отслеживанию и запуску убийства.
Отсутствует