userChrome.js Scripte für den Fuchs (Diskussion)
-
Endor -
12. Mai 2015 um 14:19 -
Erledigt
-
-
Ab Fx 63 funktioniert
gBrowser.addTab(url)
wobei url eine URL ist, nicht mehr.Es wird ersetzt durch
gBrowser.addWebTab(url)
für Web-Adressen, also alles, was mit http(s):// beginnt,
bzw.
gBrowser.addTrustedTab(url)
für alle anderen Adressen, also was mit about:, chrome://, moz-extension://, file:/// usw. beginnt. -
Vielen Dank, aborix...
.. davon betroffen ist u.a. das ScriptOpen Password Tab.uc.js
Nachfolgend das korrigierte Script...
In Zeile 29 ist entsprechend der Code geändert:Code
Alles anzeigen/* Oeffnen der Passwoerter in Tab*/ // ==UserScript== // @name open-password-tab.uc.js // @charset UTF-8 // Date 2018/10/24 Zwote Version // @note Symbolleistenschaltfläche zum Öffnen der Passwörter // ==/UserScript== (function() { if (location != 'chrome://browser/content/browser.xul') return; try { CustomizableUI.createWidget({ id: 'viewpasswordtab', type: 'custom', defaultArea: CustomizableUI.AREA_NAVBAR, onBuild: function(aDocument) { var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton'); var props = { id: 'viewpasswordtab', class: 'toolbarbutton-1 chromeclass-toolbar-additional', removable: true, label: 'Passwörter anzeigen', tooltiptext: 'Passwörter in Tab öffnen', style: 'list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAs5JREFUeNp0U11IU2EYfs5+canzF8ufICmvTJOTpWg/CrnIi6BQ+tUuFC/CupHqIokYRnnvhWIIRSQ6hX4RNOeFFUyXbS2GgXNh6tJtbPNvO+dsp+87U5mhHzzn/d7vvO/7ve/zfi8jiiKGHiqgkoORyZAPoJwgE9G1QDAeicDGhSFil6XYlIwQQXXS/ryawyU15aJam8ttrEAMehx/vg+V+FyOfmLzgUDcNUCIFwtSs45cOVbdct081mufnTYNhyMCMrMPZp88daluarRf7l10zpFkLf8HkNFPkENlQVWjzmrqdTjmhw3Q+uvlyWv1roDdYLO8dRwtO6+jNiGeXrYTUgbrHA4lJKanLXgm5hQa6MiRbuuGv6tOPxunyKU2e3KwHhJXQlwwqKtqLwoLAny+ZayteKBRCYhXi+A4Pkht9gwQ5PHl2+dhXdGJSjYUCMDrWkDAN4+UBAZxGemwTk3/pDYMsZ1JVUqQ6OTFbRJHjO8Nue6lpVBh8ek8tWZfWpygBQ/BPTZm+mW32noZBiOz6Sp0l2qjzoRRrEXA0Hfw5BoDIQwl2dI3cLvxvv6yZ9GBwRc9A0TvIM7jcxlKvrs8iTQcOwLIYsohnMJIoKSKXCkJ+jE6U4hzmZbqncR5UpKxbeSFaMBYXvqfd30kopU4o6c4gdQp0prZhnO3WColfSsAdY4BTRI3mu9VkP1TZ7KCptwJQZxEKAJ/2A8qJZ2cS7c9NgBXS4GcFCmo1K6uZ+3viGjjgyJ1YCsuVbL03C24UXHhrLQ3Do5uzwJefwUuFgIHtAhS/c6j1tq2Fn2I+yHUISdiNr4akezyawtZW5/FHJ0gmLeHiRL2xgL1TRZqOpYPmvR9v30YmJgh/fwUuEv+c9DHm7xhL7BBSlAyx6Fgom1kGIZyoSFILMrEmbxUNNiX8dLqwsRmSQGCVTSrOkjtLHE0EzQhS41/AgwAEXpPSomMNg0AAAAASUVORK5CYII=)', oncommand: "gBrowser.selectedTab = gBrowser.addTrustedTab('chrome://passwordmgr/content/passwordManager.xul');" }; for (var p in props) toolbaritem.setAttribute(p, props[p]); return toolbaritem; } }); } catch(e) { }; })();
-
davon betroffen ist u.a. das ScriptOpen Password Tab.uc.js
open-password-tab.uc.js :wink: -
Danke :klasse:
-
Oh, noch nicht abgearbeitet/gelesen gehabt....
Dann ist ja gut... -
Kann mal bitte einer hier nen Blick drauf werfen denn das Script geht mit Firefox 63 nicht mehr
Code(function() { if (location == 'chrome://browser/content/browser.xul') { eval('PlacesUIUtils._openTabset = ' + PlacesUIUtils._openTabset.toString() .replace('replace: false', 'replace: isTabEmpty(browserWindow.gBrowser.selectedTab)')); }; })();
Das Script sorgte bisher dafür das ein leerer Tab mitbenutzt wird beim Lesezeichen öffnen.
-
-
Dieses funktioniert:
https://www.camp-firefox.de/forum/viewtopi…093009#p1093009Ja der funktioniert super vielen dank Aborix für die Hilfe
-
Im aktuellen Nightly funktionieren einige von meinen Scripten nicht mehr :-??
Chrome bzw. Profilordner Ordner aufrufen:
Code
Alles anzeigen(function () { if (location != 'chrome://browser/content/browser.xul') return; const buttonId = 'Open-Chromefolder-button'; const buttonLabel = 'Chrome Ordner öffnen'; const buttonTooltiptext = ''; const buttonIcon = 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAM1JREFUOI3tj80KAWEYhc/7fZNSalJCUsSOjfKzsXcf9q6B5iq4BnuyshHlCoSVkiQ1RX7SzPtaKTWosbLwbE/n6RwCgFxrUGFQBk+IwmnOkx4si/EBylv9MjNNQYo8qfAYWtdnzdryncBwWWfTpqZIUL3KqwAWxfbQE9gXd726UMlIRc1GIhyCwDvgEzFTks7+2KVyZyF+yw8IDPVtGQAECi+P++Ev+AmBQL5vi8C42butDobi8C0iOOfDxhC+Fq72saqgfN1hMDsBGd0BybdFDCX6fDQAAAAASUVORK5CYII=)'; function buttonFunction() { Services.dirsvc.get('UChrm', Ci.nsIFile).launch(); }; var button = document.createElement('toolbarbutton'); button.id = buttonId; button.setAttribute('class', 'toolbarbutton-1 chromeclass-toolbar-additional'); button.removable = 'true'; button.setAttribute('label', buttonLabel); button.setAttribute('tooltiptext', buttonTooltiptext); button.style.listStyleImage = buttonIcon; button.addEventListener('click', function (event) { if (event.button == 0) buttonFunction(); }); document.getElementById('navigator-toolbox').palette.appendChild(button); var toolbars = Array.slice(document.querySelectorAll('toolbar')); for (var i=0; i<toolbars.length; i++) { var currentset = toolbars[i].getAttribute('currentset'); if (currentset.split(',').indexOf(button.id) >= 0) { var j; if (i == 0) j = 1 else j = 0; toolbars[j].currentSet += ','+button.id; toolbars[i].currentSet = currentset; }; }; }) ();
Und auch der Clear Cache Button.
Code
Alles anzeigen// ClearCacheButtonM.uc.js // v. 0.1 (function () { if (location != 'chrome://browser/content/browser.xul') return; const buttonId = 'clearcache-button'; const buttonLabel = 'Cache leeren'; const buttonTooltiptext = ''; const buttonIcon = 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw%2FeHBhY2tldCBiZWdpbj0i77u%2FIiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8%2BIDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDM0MiwgMjAxMC8wMS8xMC0xODowNjo0MyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBQzdFNERGRDNCNkYxMUUwQjRDRUVDOEM3Q0YyMDZEMSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBQzdFNERGRTNCNkYxMUUwQjRDRUVDOEM3Q0YyMDZEMSI%2BIDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkFDN0U0REZCM0I2RjExRTBCNENFRUM4QzdDRjIwNkQxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkFDN0U0REZDM0I2RjExRTBCNENFRUM4QzdDRjIwNkQxIi8%2BIDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY%2BIDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8%2BKcFfnQAAAuZJREFUeNqkkslv1EgUxr%2FyUm272267O510RCcThS1IhE1Bg9CAWgyZuc8px5FGHIAj4sAdLvwBuXDgDwAklguI5QBCiGWQWEYsEyAKUTrB9JLEbaddLhfVSbghhERJr0ol1fu9V9%2F7iBACP7O07jZ5dXL1IlIJ4wAtuiAXLsF%2BdAObjozB6S%2BDcANyQxDHuHX59l9DmwdO9i1%2BOK79cCmRggDbgjaf4K5WTT8vnFB8%2BvTHAEIMa1bxH56IAzR9Zo3%2FNgwEJos7HN8HEPmlNP1VNwqndcvzqJZFv2XLTkLEzXdj2Vz%2BsfKNtJLMtLpyIFZ2UJ47qxuqJ%2FiyhAUwCxVoVgFhnPBPi2K9A%2FmYENKNQ1Ax3Ak6V4ousyx39ExA9mfLogEmQqjyDV96iRV%2FKmVh5gEIWwdIdaT6RI60Fzp9Xw59f8vGubO%2BMdB%2F7VkTI41ebDY7SGf%2Fx8zb16jPzk7ZPHwlZKK2ppGQxcnf8uS6aj4pBi%2F%2BKPXqh5xyCNLzEvM1C63QwLv5aWwdMGBo1vWokSREVdYAaqrqgoiMoqqPSNweK%2FW0TylGHlpCsGtHBnwkBuNL2DNeAmMxf%2FOieD8TebLldA1AFHJUVv%2FMhdafj6erfT3MTjiBxIJJCBcUumkiYVInwfjyXLTCOzEIXXdiumpBbEhSMeSQBleVDvScC2QqIKp0JRIZEeJ2EzSv0sEtrWMfn89PJlzUv05hlgtedazCRYf17LS8NtTew1BUipS1pMDLYFEMKxtDcIHRg4N%2FFgcKe33fPr8mYk48qdBKYHI7O%2FWhaA46fkxaD2mSUjh210xLKPVpqNUasB0Nb98kHb%2FutdztR1%2BtAnRTn6mOVmsLtYWR9mJk3%2Flv5SZd%2Fnf7TDOHil13389r8e%2F7QKenaaS6v8xltFytNDJ%2Bt1iu1Lqzx7l75zCxewK6pkuVWcavN50o6rhhO3CiMDTSVZspiecYKzTrffLyuUU3b7dZkuCLAAMAxwpPxFIuoXQAAAAASUVORK5CYII%3D)'; function clearCache() { //var cacheService = Cc["@mozilla.org/network/cache-service;1"].getService(Ci.nsICacheService); try { Services.cache2.clear(); } catch (exception) { alert(exception.description); } }; var button = document.createElement('toolbarbutton'); button.id = buttonId; button.className = 'toolbarbutton-1 chromeclass-toolbar-additional'; button.setAttribute('label', buttonLabel); button.setAttribute('tooltiptext', buttonTooltiptext); button.style.listStyleImage = buttonIcon; button.addEventListener('click', function (event) { if (event.button == 0) clearCache(); }); document.getElementById('navigator-toolbox').palette.appendChild(button); var toolbars = document.getElementsByTagName('toolbar'); for (var i=0; i<toolbars.length; i++) { var currentset = toolbars[i].getAttribute('currentset'); if (currentset.split(',').indexOf(button.id) >= 0) { var j; if (i == 0) j = 1 else j = 0; toolbars[j].currentSet += ',' + button.id; toolbars[i].currentSet = currentset; }; }; var menuitem = document.createElement('menuitem'); menuitem.id = 'clearcache-item'; menuitem.setAttribute('label', buttonLabel); menuitem.addEventListener('click', function (event) { if (event.button == 0) clearCache(); }); var separator = document.getElementById('devToolsSeparator'); separator.parentElement.insertBefore(menuitem, separator.nextSibling); var key = document.createElement('key'); key.id = 'ae_key_clearbutton'; key.setAttribute('keycode', 'VK_F9'); key.setAttribute('oncommand', 'document.getElementById("clearcache-item").click()'); document.getElementById('mainKeyset').appendChild(key); }) ();
Oder auch wenn man einzelne Dateien aufrufen will wie z.B. die userChrome.css.
Code
Alles anzeigen(function () { if (location != 'chrome://browser/content/browser.xul') return; const buttonId = 'userChrome.css-button'; const buttonLabel = 'userChrome.css'; const buttonTooltiptext = 'userChrome'; const buttonIcon = 'url(data:image/gif;base64,R0lGODlhEAAQAOZXAP///yczPvX6/n2KlpNfAAA0oTGU4qXX9FFcZfz9/nqGk9H6/wCd/9DY4MbP2GBqdfYkAH6Ll87W4MgVAGBpc/z//106AAxszff7/f/LUoSQm1NdZ//651tjbe3y9vH1+M86FePo7F5pdPb7/1BaZeju9EpTXaarsCgzPwZp0HSAjANr1WRtdwhpzPr7/HJ+iujr72BoceTr8mhzfv7//7rEzvz9/fr8/mt1gf/50Ozx9lljbPb4+vn6/GVvec0yC254g8UTAMTN1nB6h77CxrC7xvr8/f39/neDj/P3+mZwe/b5/IKOmbzG0ImSm/v8/mp1f/f5+/D0+FxkbV5ocfX3+v/M/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAFcALAAAAAAQABAAAAfBgFeCGhpMEQOIiREKglcKAE4AkpOUjI6SIhUCm5wjAFCCSJIkGwimphs7VCyCKgAJlLGSgi8APRINuRIuNgA/QQCCQwA8RgnHT0cAFxBWIIJAAFVCDtUwywcAEBOCOAAfSxgYsC0HCwbbgjMAUjVNIQAp5gYMBcFXSgAeSTcAK/P1Zl3xAUBHEQAEANoLFqPDAwAloiDMQM8eEUFTaDyoIAMhhxwZFlIQZOLhJAIcLFiYNFJQgJcBAKAgIOnEy0aBAAA7)'; function buttonFunction() { var dir = Services.dirsvc.get('UChrm', Ci.nsIFile); dir.append('userChrome.css'); dir.launch(); }; var button = document.createElement('toolbarbutton'); button.id = buttonId; button.setAttribute('class', 'toolbarbutton-1 chromeclass-toolbar-additional'); button.removable = 'true'; button.setAttribute('label', buttonLabel); button.setAttribute('tooltiptext', buttonTooltiptext); button.style.listStyleImage = buttonIcon; button.addEventListener('click', function (event) { if (event.button == 0) buttonFunction(); }); document.getElementById('navigator-toolbox').palette.appendChild(button); var toolbars = Array.slice(document.querySelectorAll('toolbar')); for (var i=0; i<toolbars.length; i++) { var currentset = toolbars[i].getAttribute('currentset'); if (currentset.split(',').indexOf(button.id) >= 0) { var j; if (i == 0) j = 1 else j = 0; toolbars[j].currentSet += ','+button.id; toolbars[i].currentSet = currentset; }; }; }) ();
Kann mit bitte mal jemand sagen wie ich die wieder anpassen kann.
Herzlichen Dank vorweg.
-
Für ClearCacheButton gibts seit 4 Jahren eine Version 0.2
https://github.com/ardiman/userCh…hebuttonmovableCode
Alles anzeigen// ClearCacheButton.uc.js // v. 0.2 (function() { if (location != 'chrome://browser/content/browser.xul') return; try { CustomizableUI.createWidget({ id: 'clearcache-button', type: 'custom', defaultArea: CustomizableUI.AREA_NAVBAR, onBuild: function(aDocument) { var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton'); var attributes = { id: 'clearcache-button', class: 'toolbarbutton-1', removable: 'true', label: 'Cache leeren', tooltiptext: 'Cache leeren', style: 'list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw%2FeHBhY2tldCBiZWdpbj0i77u%2FIiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8%2BIDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDM0MiwgMjAxMC8wMS8xMC0xODowNjo0MyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBQzdFNERGRDNCNkYxMUUwQjRDRUVDOEM3Q0YyMDZEMSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBQzdFNERGRTNCNkYxMUUwQjRDRUVDOEM3Q0YyMDZEMSI%2BIDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkFDN0U0REZCM0I2RjExRTBCNENFRUM4QzdDRjIwNkQxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkFDN0U0REZDM0I2RjExRTBCNENFRUM4QzdDRjIwNkQxIi8%2BIDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY%2BIDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8%2BKcFfnQAAAuZJREFUeNqkkslv1EgUxr%2FyUm272267O510RCcThS1IhE1Bg9CAWgyZuc8px5FGHIAj4sAdLvwBuXDgDwAklguI5QBCiGWQWEYsEyAKUTrB9JLEbaddLhfVSbghhERJr0ol1fu9V9%2F7iBACP7O07jZ5dXL1IlIJ4wAtuiAXLsF%2BdAObjozB6S%2BDcANyQxDHuHX59l9DmwdO9i1%2BOK79cCmRggDbgjaf4K5WTT8vnFB8%2BvTHAEIMa1bxH56IAzR9Zo3%2FNgwEJos7HN8HEPmlNP1VNwqndcvzqJZFv2XLTkLEzXdj2Vz%2BsfKNtJLMtLpyIFZ2UJ47qxuqJ%2FiyhAUwCxVoVgFhnPBPi2K9A%2FmYENKNQ1Ax3Ak6V4ousyx39ExA9mfLogEmQqjyDV96iRV%2FKmVh5gEIWwdIdaT6RI60Fzp9Xw59f8vGubO%2BMdB%2F7VkTI41ebDY7SGf%2Fx8zb16jPzk7ZPHwlZKK2ppGQxcnf8uS6aj4pBi%2F%2BKPXqh5xyCNLzEvM1C63QwLv5aWwdMGBo1vWokSREVdYAaqrqgoiMoqqPSNweK%2FW0TylGHlpCsGtHBnwkBuNL2DNeAmMxf%2FOieD8TebLldA1AFHJUVv%2FMhdafj6erfT3MTjiBxIJJCBcUumkiYVInwfjyXLTCOzEIXXdiumpBbEhSMeSQBleVDvScC2QqIKp0JRIZEeJ2EzSv0sEtrWMfn89PJlzUv05hlgtedazCRYf17LS8NtTew1BUipS1pMDLYFEMKxtDcIHRg4N%2FFgcKe33fPr8mYk48qdBKYHI7O%2FWhaA46fkxaD2mSUjh210xLKPVpqNUasB0Nb98kHb%2FutdztR1%2BtAnRTn6mOVmsLtYWR9mJk3%2Flv5SZd%2Fnf7TDOHil13389r8e%2F7QKenaaS6v8xltFytNDJ%2Bt1iu1Lqzx7l75zCxewK6pkuVWcavN50o6rhhO3CiMDTSVZspiecYKzTrffLyuUU3b7dZkuCLAAMAxwpPxFIuoXQAAAAASUVORK5CYII%3D)', oncommand: 'Services.cache2.clear();' }; for (var a in attributes) toolbaritem.setAttribute(a, attributes[a]); return toolbaritem; } }); } catch(e) { }; var menuitem = document.createElement('menuitem'); menuitem.id = 'clearcache-item'; menuitem.setAttribute('label', 'Cache leeren'); menuitem.setAttribute('oncommand', 'Services.cache2.clear();'); var separator = document.getElementById('devToolsSeparator'); separator.parentElement.insertBefore(menuitem, separator); })();
-
Für ClearCacheButton
Funktioniert einwandfrei im Nightly...herzlichen Dank dafür :klasse: -
Möchte mich gleich mal anschließen auch ExtensionOptionsMenu ist etwas verschnupft.Könnte auch hier einmal
der Doc drüber schasuen bitte.CSS
Alles anzeigen// ==UserScript== // @name ExtensionOptionsMenu.uc.js // @description Symbolleistenschaltfläche zur Add-ons-Verwaltung // @include main // @charset UTF-8 // @version 3.1.4 Anpassung an Firefox 61+ von aborix // @version 3.1.2 Auf Grund von Problemen, wurde die Fensteranzeige der Erweiterungseinstellungen entfernt // @version 3.1.1 Öffnen des Erweiterungen-Ordners funktionierte nicht // @version 3.1.0 Unterstützt Fx 57 oder später. System Add-ons, konnten nicht deaktiviert werden // @version 3.0.10 Fx52以降で右クリック時に出る既存メニューを出ないように修正 (2ch該当スレより拝借) // @version 3.0.9 表示したくないアドオンを設定できるように(コメントアウト内の説明参照)、選択アドオンのidをAlt+左クリックでコピーできるように // @version 3.0.8 再起動に関する修正 // @version 3.0.7 メニューにアイコンが出ていなかったのを修正 // @version 3.0.6 互換性を考慮して書き換え デフォルトでボタンはカスタマイズパレットに配置 // @version 3.0.5 ツールチップに操作法を表示するように コメントアウト内CSSを更新 // @version 3.0.4 一部アドオンの設定画面が機能していなかったのを修正、メニューパネル内でドロップマーカーが出ないようにするCSSを追記 // @version 3.0.3 ボタンをツールバーパレットから自由に配置できるように変更(メニューパネル内への配置にも対応 ※コメントアウト内のcssを追加するように) // ==/UserScript== /* Schaltflächensymbol: Linksklick: Erweiterungsliste anzeigen Mittelklick: Firefox neustarten Rechtsklick: Add-ons-Manager öffnen Erweiterungen: Linksklick: Erweiterungseinstellungen öffnen, wenn vorhanden Mittelklick: Internetseite der Erweiterung öffnen Rechtsklick: Erweiterungen aktivieren/deaktivieren Strg + Linksklick: Erweiterungsordner öffnen Strg + Mittelklick: Erweiterungs-ID in Zwischenablage kopieren Strg + Rechtsklick: Erweiterung entfernen / Deinstallation rückgängig machen *Nach Firefox-Neustart kann dies nicht mehr Rückgängig gemacht werden. Bei "blackListArray" in Zeile 50 können Add-ons, die nicht im Menü angezeigt werden sollen, mit der ID des Add-ons eingegeben werden. Sie können die ID mit Strg + Mittelklick kopieren. Einige Systemerweiterungen werden standardmäßig hinzugefügt. */ 'use strict'; var EOM = { showVersion: true, // Versionsinfo anzeigen (true = Versionsinfo anzeigen, false = nicht anzeigen) showAll: true, // Alles anzeigen, auch bei Erweiterungen ohne Einstellungen showDisabled: true, // deaktivierte Erweiterungen anzeigen (deaktivierte Add-ons anzeigen) autoRestart: false, // Firefox nach Installation bzw. Deinstallation automatisch neu starten iconURL: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjbQg61aAAACkUlEQVQ4T43T60tTYRwH8HMQ9QQJRSBJ50xU8BL1QpJMsbxNc162edxcYlAoZdkFh6gZurF5WV6nc7M/oBdBb7q9DSPEVBDbZtN0c5tzNymolwXht2eDhVO0Dnx4Hn6/5/me8xx4KOqQR2rcYfjpIC81BpXiqWBnxUSgpWQ0kHrY+gN1xdOdu/XTQfDGIMSGAET6AMpG/TbhiD/uv0LqTYF7cmPgN2/wQzzhh2jMB+Gwz1I65I3/Z8A1o5eRTXqP85M+pVTv260Z86JieNtcMridXNjnZvI1Lia31xV7IIgf99AKg/e1wrAN+YQHtXoPJKNbqBrewlWdG6UDLlzRupCv3sTFns3vFx47SqJCFHoPoyAb5eNb4MlGyYgb1UNuiHQulPW7UKRx4rJqE5d6HMjpdiC7066mRFpHvFTnbCHuSJ84E+rIJumQExKdEzVE5YAT5RoHCnvsyO3aQHb7Os63rSHrwRoy76+qqErNBi/ut4PYrdFsKCWDDoj77CjvXUdu+yqyWleQcsuK5GYrBE0WcE0Wm6DZmsk1W7VEI1XRu6YUqb6gUh22W9BhQ8ZtCwQ3PoEjQuM+psi5SSBNCR/Zusq7bSju+IyMpmWwjUvgrh+hcWks6scVKs0tBQ/NSG5YBKtYNHOKRRxt4WUogKufTwmh8lqXU9MaFlY42UcLJ5tnOfk8yPwov0j/LfGNUIe/huXnYrm6uTiOn2UI7GEjcxMxTrwifu7rq6KOw0o+MAT2SI8sYGtnaVJ/s68fFUCfONd2jK2e+cFWv0dY1bu+mPiTocsTmyR8kU56X//2wmtmuiMvoMkkdEkEp3K0N08XPZsKScwzdNB0zFlSz0pIaxBG6mQ0JBU/1yXmm878AbFQoHrb98HyAAAAAElFTkSuQmCC', blackListArray: [ "clicktoplay-rollout@mozilla.org", "firefox@getpocket.com", "screenshots@mozilla.org", "followonsearch@mozilla.com", "formautofill@mozilla.org", "onboarding@mozilla.org", "shield-recipe-client@mozilla.org", "webcompat@mozilla.org", "activity-stream@mozilla.org", "presentation@mozilla.org", "aushelper@mozilla.org", "webcompat-reporter@mozilla.org", "e10srollout@mozilla.org" ], sort: { enabled: 0, disabled: 1 // 0, 0 - In alphabetischer Reihenfolge // 0, 1 - Reihenfolge wie im Add-On-Manager }, init: function() { var style = ` @namespace url('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul'); #eom-button { list-style-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjbQg61aAAACkUlEQVQ4T43T60tTYRwH8HMQ9QQJRSBJ50xU8BL1QpJMsbxNc162edxcYlAoZdkFh6gZurF5WV6nc7M/oBdBb7q9DSPEVBDbZtN0c5tzNymolwXht2eDhVO0Dnx4Hn6/5/me8xx4KOqQR2rcYfjpIC81BpXiqWBnxUSgpWQ0kHrY+gN1xdOdu/XTQfDGIMSGAET6AMpG/TbhiD/uv0LqTYF7cmPgN2/wQzzhh2jMB+Gwz1I65I3/Z8A1o5eRTXqP85M+pVTv260Z86JieNtcMridXNjnZvI1Lia31xV7IIgf99AKg/e1wrAN+YQHtXoPJKNbqBrewlWdG6UDLlzRupCv3sTFns3vFx47SqJCFHoPoyAb5eNb4MlGyYgb1UNuiHQulPW7UKRx4rJqE5d6HMjpdiC7066mRFpHvFTnbCHuSJ84E+rIJumQExKdEzVE5YAT5RoHCnvsyO3aQHb7Os63rSHrwRoy76+qqErNBi/ut4PYrdFsKCWDDoj77CjvXUdu+yqyWleQcsuK5GYrBE0WcE0Wm6DZmsk1W7VEI1XRu6YUqb6gUh22W9BhQ8ZtCwQ3PoEjQuM+psi5SSBNCR/Zusq7bSju+IyMpmWwjUvgrh+hcWks6scVKs0tBQ/NSG5YBKtYNHOKRRxt4WUogKufTwmh8lqXU9MaFlY42UcLJ5tnOfk8yPwov0j/LfGNUIe/huXnYrm6uTiOn2UI7GEjcxMxTrwifu7rq6KOw0o+MAT2SI8sYGtnaVJ/s68fFUCfONd2jK2e+cFWv0dY1bu+mPiTocsTmyR8kU56X//2wmtmuiMvoMkkdEkEp3K0N08XPZsKScwzdNB0zFlSz0pIaxBG6mQ0JBU/1yXmm878AbFQoHrb98HyAAAAAElFTkSuQmCC'); } .addon-disabled > .menu-iconic-left { filter: grayscale(1); } .addon-disabled label { color: Gray !important; } .addon-uninstall label { font-weight: bold !important; } .addon-uninstall label:after { content: '-'; } #eom-button[cui-areatype="menu-panel"], toolbarpaletteitem[place="palette"] > #eom-button { list-style-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAFHklEQVRYw8WXXYhd1RXHf+vcOxPj+JGYBow6M2rb1FISI77EkEDEB1GiEkdN24ciCYXSmtI+BBJBBdtEiYhCDCgkioIPmsSvByUY6BQ1pgi2Tj+gLU2aGUJJp5PpfNzcmXv3Xn8f9rlfmdwZkgm4YLEP+5y99n+v9V9r7WOS+CaleDGLNu79b29mehTjXonFEosEHdGpRteoi9Mh8l5w3uzfdu3p89m4bcdx/vjMzRcOoG/v6awjs5fM2CCBk1QSBhgszWB5wbTOjeV3Pvefn/9u2zJvZy+7UAALCra4YNyCoJ0qHwvwnaKx5BKHQFZfJ+WbKk1LjTkA0TGXtQv2QKXqkyH4V8hLyo8qCeT5mFTOeIw+UA0+cUkBHNy6bCpE/SxG/UquL+USDnKBK+3tOurRt4aoJ/t33DB1SULwo72nFgGGo05j7K2t1+978MVTtwKr5BhSLfZRUR8f2d79xl27Brvu3HlyUXRwCRd4JHMxBkQAm6sO/HDPqbuB7cD6mrsliAJhuDukw+cq3Mm/EdHB3RBOjAmERH8Uz37x25sPz+qBvheGso5idqk3J4r17gKYHUDR6ALW455zKzeS571yxje4J+QNMKlICJdQ4kcdrFzr5uSAQRF3FIVonKCWedTi2gQAb31ufEwqVJ5GicIMAH27T3wLoBp8/IPHv12RHNyIngA0ZRlOKwAElqPLcg9FgTt47gV3EWPC5K4GCe/9zb+6O4q2p5DZ9wFi1J+j9NjCThuTFc5GjyjtWI85ZvVnCaKLStWpBNU1OgQXMaoOuh42iCde+UGxmFyjzZl4wPMAG9yYuX94YNt3X924+zgKyYDRcGWIolJxShWnXBFTFacaEwld6dTJ1wCcMGOX4G/AL4AfQ3MI3O+JWDKehk4Tj93/9D9WZcUCeGo0LnF2OjJRFpPlyFTVCVFoJneStcaLl7HstcF9K2LvloEB4H1gaR2AXItjDhjLR1gFrPQQVY2yibOR/5cipelYj6PlgG32GnYGs4GT+1ZEgJP7V072bhk4UKvCNQBLlPvecjdkGRaqKoyVIiOTgXLFcUFmTSdsEHw2mQSVmidO7l+p3s1fxToAd3VYk/+EmJiMDI8HJsspl7LMUtAu/AJVBcKMnloqN3pBCD6dAZYlNo+OR0YmqoSYNjYjlb+Lkw5QcdZm5CGOWGZLQ4Dh8Sqj4wEDChkBV4E5wzyrLEK6os3eIQGI/j+5MTJWZXQiYIkDnyGOYPZUSvyLlqtAq4GPAHo2HbsO2AgsAZ7OQ6D3y9Nh7ehEIEt1IeI8P/j26nd7Nv3hKeZ/c/5pzyPHpoF/Aj8BNuTzCUA16PXxydBL9FusADh/Aft9z0NHu8iyVE/nJ8uAnefMzbwPdPcdXZoXotHBg2tCT9+ni7HsTF6H2+c5TOQGi8DVuc4lcfDQ2mILO4cOrRluSRVJRn7XmynHwfab8SVQagJwpeAOpEeB6+f3Y+JCGbQh4c6h99a9er4X3Q9+ehhXCdg1v1uxWpr9ufrXdsuG3lkbkP7eZl1D5wTgylquMa36y+77+s8b6+77+rtxbW6zrqaF8wKwJAUz6xz+/NcVYvikzS/Qw14Zu7/zqpuuMLPLa1q87JouD6WHQHcz2+8TGjIzK567eQ7qMuDK6ZE/dU0Nf/HGgmtWLLBs4e35u1pKdMTy8Pfi1MiNtZRKjS0UvHzmpqxrYbF5vkkKyP/tofQEkLWk4bkAgK5Uy+dViltYlTens8A4MPU1jYiz7Re8VU8AAAAASUVORK5CYII='); } `; style = style.replace(/\s+/g, " "); var sspi = document.createProcessingInstruction( 'xml-stylesheet', 'type="text/css" href="data:text/css,' + encodeURIComponent(style) + '"' ); document.insertBefore(sspi, document.documentElement); sspi.getAttribute = function(name) { return document.documentElement.getAttribute(name); }; const XUL_NS = 'http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul'; var btn = document.createElementNS(XUL_NS, 'toolbarbutton'); btn.setAttribute('id', 'eom-button'); btn.setAttribute('label', 'Extension Options Menu'); btn.setAttribute('tooltiptext', 'Extension Options Menu'); btn.setAttribute('class', 'toolbarbutton-1 chromeclass-toolbar-additional'); btn.setAttribute('type', 'menu'); btn.setAttribute('oncontextmenu', 'return false'); btn.addEventListener('click', EOM.iconClick); var mp = btn.appendChild(document.createElementNS(XUL_NS, 'menupopup')); mp.setAttribute('id', 'eom-button-popup'); mp.setAttribute('onclick', 'event.preventDefault(); event.stopPropagation(); setTimeout(function(){document.getElementById("toolbar-context-menu").hidePopup();}, 0);'); mp.addEventListener('popupshowing', (event) => EOM.populateMenu(event)); function copyList() { AddonManager.getAddonsByTypes(["extension"]).then(function(extensions) { Cc['@mozilla.org/widget/clipboardhelper;1'].getService(Ci.nsIClipboardHelper).copyString(extensions.map(function(item, id) { return (id + 1 + ". " + item.name + " [" + item.version + "]" + "\nID:" + item.id); }).join("\n")); }); XULBrowserWindow.statusTextField.label = "Add-ons-Liste in Zwischenablage kopieren"; }; var mMenus = [ { alabel: 'Firefox neu starten', label: 'Script-Cache löschen', image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACgElEQVQ4jY2RfUzMARjHv7tODnmJOxGm3LnKe3fnoh+W184ypjmZpZrQFLOSstns5g/cIXq9fuqQUd4tx0jFcLVRrSxNNE2bsUYY5Sr09Y9u2Nz6/vk83+ez5/s8gBvFAbKCUKw7Hz6o3KrDDHfev5Qmx/BCAVvKklR1b8rSWHMovM+ignJAw6IeEZU7FC3tNxeSjWvJF8l8Z0/tu5eyqKloiWd6MjDELcCqg/5hqk8bm8LIulCyQiCrjGRVCjuupbN04+Tygyoo3EIypkNVluDd0OsIJe+F8KV5IjtFFXkhnM7iRF5eM+aaEfBwDeTpEGDVQcgLwTyTAl4AIGqhrNg+uvlzaTBti3D0nEGa2W6ZRNoW87VpAfPnwuAC2I1eLa3FMT8cphVOUQtNfz1XA1XJqkH3bQJWAkBJhMcZ54mp/Hl4Fq8aPM+5AFUxsi42JLFR3PwtQ40J/ySShAHS31sFPt873smjKjqihr5yOSo3DH7NO2vZkm/8njUb+v/dJg6Q1e6Sv2FOIOs3jfzqalxYjlM/CrXsvrWVxSs9TwFAjh7q0wKsohbyft8RJcZWJ4zp+nTAj4/WD/v45+vCWtN9SHsk2zINLJiPvVYdNjRbo2mP9X9i8cM4ADAp4FUoINYmIP6kgNV/5bwaIS3tOaEmr0Tybe5qPtg553N3dRa/1Yi8ETvNYQ6A7/+iAQDMAfC9bZQ97jT7k0ULyevR5KUo8qzAnrt7WJ6oeSpqMdMtRNRCXrJMkl27bWTHh/3jfzJDSWb4s/eYmg37QliwALvdAvplCcJUR8yI953mKayP9/5ycRls2cHQAZAMCGDyw6grBumz4qUS83ENgtx5fwEzyhRmLMK7zwAAAABJRU5ErkJggg==", oncommand: "Services.appinfo.invalidateCachesOnRestart() || BrowserUtils.restartApplication();", style: "min-width: 260px;" }, { label: "Erweiterungsordner öffnen", image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADEElEQVQ4jY2RXUiTcRjF/9JFpBAapk5NnWzzI5vTbb5uuunrtFm5XCpi7tVEs0zU9aFFk6wmiV9RfrRqkRgZhVIZSjXUNDPCmaamlZQQ0gdFVxGFbu10paXzonN5Hs6P5zkPISsVniYjArXAzv8vceVyIi8A71g7hNW9k56eQsfFEYeQtUlOzqFJ69dzV4uuIbw4LxLB7CCyfNDGccgujcE9rqgvM4D6ZAjmvKjm+HYUbWShLYxn65Rsfro87iHwI9H5YBUYsankGqQXnkNycQyBlSaIK+7i6x4pblFBn/e6usMUswVP4vgzjKMr6y/ANYhFonIR1WxGTMsrSI2TEBnGwG8cgUjfjY+7JeiL5eM8zx/jieEYUYThPhVireP6Zi4iHEhk9im/Q20vvAuvQNBoRkjDMJry9mM0NRrv0yi8U0fgTZIIU4lCjNECm1kuQDXbh/m7RVzxARJ/pJLI8uF3oguc+iG0ZqSiR03jbbIYw2oRLhdSMCvCYIoIfqZycfH5twUHIs1d2LDXgI3F1+Bf8xjeVf1w1/fAu/QmprcJUX9UCk27EvcSQtEZHjRo94Z18qwPXsc64FczCK8zj+B2+iHoWiNS9BVo04hwSB+FlNZ45FRIoaigPtgBjuZtvlXZUIDx4cNIb2rGhvJOfDFrYOpVIePmVqS0JkBlVEDZSEN8Ujy7FExRurIMx0N0tdrA0S5jPKxzJdA0n4OHrg1fzAxeDqpxp0sJ7VUaygYa7JKA64SQNUuAg7t9yw06PoY7d+F1vwbWuRL8nNmHH1M5sEwzmJ9Ih2VUDX1LLGJrYsDRhsAjj3t7CcAkuYW2N9LfrF91sH4qg3VOC8tsAb5PZMMyzWDApMLOszLIqmQ2ySkZhMejEFAknFx2/8EsbtCD1sSpoY5kWOe0MF2NHzhTxPv9a1KD+907EK4T2/ilIoSWRdrc0tmMk8Rli12JRzTstK4rCfML74ttN+qo5NIstqq3ha46fThY4Ug7J7MY7rfgYspCBM7OduFFZW/34uWm+vivOgxw9HSiXPgr7T+DX3N5gyCN2AAAAABJRU5ErkJggg==", oncommand: "FileUtils.getFile('ProfD', ['extensions']).reveal();" }, { label: "Add-ons-Liste in die Zwischenablage kopieren", image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABlSURBVDhP5Y5BCsAgEAP3i/1AP+D/zxUlwWBXXQueOhAQzQStcN3p2UmVFK80C7QGH1aEBniOBPqhgRnsQB8P8KzRe+i/+YHCO+htQNPjdaB/G4D6hoWekFzQohfUxngSg4pglgGUsQ0ZR4jGSwAAAABJRU5ErkJggg==", oncommand: '(' + copyList.toString() + ')()' } ]; var menugroup = mp.appendChild($C("menugroup", { id: "eom-menugroup" })); mp.appendChild($C('menuseparator')); for (let i = 0, menu; menu = mMenus[i]; i++) { menugroup.appendChild($C("menuitem", { label: menu.alabel, tooltiptext: menu.label, image: menu.image, class: "menuitem-iconic", oncommand: menu.oncommand, style: menu.style || "max-width: 10px;" })); }; function $C(name, attr) { var el = document.createElement(name); if (attr) { Object.keys(attr).forEach(function(n) { el.setAttribute(n, attr[n]); }); }; return el; }; gNavToolbox.palette.appendChild(btn); var toolbars = Array.slice(document.querySelectorAll('toolbar')); for (var i = 0; i < toolbars.length; i++) { var toolbar = toolbars[i]; var currentset = toolbar.getAttribute('currentset'); if (currentset.split(',').indexOf(btn.id) >= 0) { var j; (i === 0) ? j = 1 : j = 0; toolbars[j].currentSet += ',' + btn.id; toolbar.currentSet = currentset; } } }, populateMenu: function(event) { var prevState; var showItem = true; var popup = event.target; if (popup !== event.currentTarget) { return; } while (popup.childElementCount > 2) { popup.removeChild(popup.lastChild); } var addons; AddonManager.getAddonsByTypes(['extension']).then(function(aAddons) { addons = aAddons; }); var thread = Services.tm.mainThread; while (addons === void 0) { thread.processNextEvent(true); } addons.sort((a, b) => { var ka = this.key(a); var kb = this.key(b); return (ka < kb) ? -1 : 1; }).forEach((addon) => { if (!addon.appDisabled && ((addon.isActive && addon.optionsURL) || ((addon.userDisabled && this.showDisabled) || (!addon.userDisabled && this.showAll)))) { var state = addon.isActive; if (this.sort.disabled === 1 && (prevState && state !== prevState)) { popup.appendChild(document.createElement('menuseparator')); } prevState = state; var mi = document.createElement('menuitem'); var label = addon.name; if (this.showVersion) label = label += ' ' + '[' + addon.version + ']'; mi.setAttribute('label', label); mi.setAttribute('class', 'menuitem-iconic'); mi.setAttribute('tooltiptext', 'ID : ' + addon.id + '\nGröße : ' + Math.floor(addon.size / 1024) + ' KB' + '\n\nLinksklick = Add-On-Einstellungen öffnen\nRechtsklick = Add-On aktivieren / deaktivieren\nMittelklick = Add-On-Homepage öffnen\nStrg + Linksklick = Add-on-Ordner öffnen\nStrg + Rechtsklick = Add-ons deinstallieren / rückgängig machen\n* Nach Firefox-Neustart kann diese Aktion nicht mehr Rückgängig gemacht werden.\nStrg + Mittelklick = Addon ID kopieren'); var icon = addon.iconURL || addon.iconURL64 || this.iconURL || ''; mi.setAttribute('image', icon); mi.addEventListener('click', (event) => this.handleClick(event)); mi._Addon = addon; if (!addon.optionsURL && addon.isActive) { mi.setAttribute('style', 'color: Gray'); } if (!addon.operationsRequiringRestart) { mi.setAttribute('style', 'color: Green'); } this.setDisable(mi, addon.userDisabled); this.setUninstall(mi, this.isPending(addon)); if (this.blackListArray) { for (var i = 0; i < this.blackListArray.length; i++) { if (this.blackListArray[i] == addon.id.toLowerCase()) { showItem = false; break; } else { showItem = true; } } } if (showItem) popup.appendChild(mi); } }); }, iconClick: function(event) { if (event.target !== event.currentTarget) { return; } if (event.button === 1) { EOM.restart(); } else if (event.button === 2) { /* event.preventDefault(); event.stopPropagation(); setTimeout(function() { document.getElementById("toolbar-context-menu").hidePopup(); }, 0); */ BrowserOpenAddonsMgr('addons://list/extension'); } }, handleClick: function(event) { var mi = event.target; if (mi !== event.currentTarget) { return; } if (!('_Addon' in mi)) { return; } var addon = mi._Addon; var pending = this.isPending(addon); var hasMdf = event.ctrlKey || event.shiftKey || event.altKey || event.metaKey; switch (event.button) { case 0: if (addon.optionsURL && !hasMdf) { this.openAddonOptions(addon); } else if (event.ctrlKey) { this.browseDir(addon); } break; case 1: if (addon.homepageURL && !hasMdf) { openURL(addon.homepageURL); } else if (event.ctrlKey) { Cc['@mozilla.org/widget/clipboardhelper;1'].getService(Ci.nsIClipboardHelper).copyString(addon.id); } break; case 2: if (!hasMdf) { var stateDisabled = !addon.userDisabled; stateDisabled ? addon.disable() : addon.enable(); this.setDisable(mi, stateDisabled); if (addon.operationsRequiringRestart && this.autoRestart) { EOM.restart(); } } else if (event.ctrlKey) { if (pending) { addon.cancelUninstall(); } else { addon.uninstall(); } this.setUninstall(mi, pending); } break; } }, setDisable: function(mi, dis) { var cls = mi.classList; dis ? cls.add('addon-disabled') : cls.remove('addon-disabled'); }, setUninstall: function(mi, uninst) { var cls = mi.classList; uninst ? cls.add('addon-uninstall') : cls.remove('addon-uninstall'); }, isPending: function(addon) { return addon.pendingOperations & AddonManager.PENDING_UNINSTALL; }, openAddonOptions: function(addon) { var optionsURL = addon.optionsURL || ''; if (!addon.isActive || !optionsURL) { return; } switch (Number(addon.optionsType)) { case 3: "switchToTabHavingURI" in window ? switchToTabHavingURI(optionsURL, true) : openTab("contentTab", { contentPage: optionsURL }); break; default: openDialog(optionsURL, addon.name, 'chrome,titlebar,toolbar,resizable,scrollbars,centerscreen,dialog=no,modal=no'); } }, browseDir: function(addon) { var dir = Services.dirsvc.get('ProfD', Ci.nsIFile); var nsLocalFile = Components.Constructor('@mozilla.org/file/local;1', 'nsIFile', 'initWithPath'); dir.append('extensions'); dir.append(addon.id); var fileOrDir = dir.path + (dir.exists() ? '' : '.xpi'); try { new nsLocalFile(fileOrDir).reveal(); } catch (e) { var addonDir = /.xpi$/.test(fileOrDir) ? dir.parent : dir; try { if (addonDir.exists()) { addonDir.launch(); } } catch (e) { var uri = Services.io.newFileURI(addonDir); var protSvc = Cc['@mozilla.org/uriloader/external-protocol-service;1'].getService(Ci.nsIExternalProtocolService); protSvc.loadUrl(uri); } } }, key: function(addon) { var sort = this.sort; var sortPos = addon.isActive ? sort.enabled : sort.disabled; return sortPos + '\n' + addon.name.toLowerCase(); }, restart: function() { ('BrowserUtils' in window) ? BrowserUtils.restartApplication() : Application.restart(); } }; EOM.init();
-
..herzlichen Dank dafür :klasse:.. :mrgreen: Das du dich bei mir mal wegen eines Scripts bedankst.. das hätte ich ja nie erwartet...
-
@ Abendstern: Es empfiehlt sich damit zu warten, da am AddonsManager in Nightly herumgeschraubt wird... siehe auch hier
https://www.camp-firefox.de/forum/viewtopi…095508#p1095508 -
Ok stimmt da war ja noch was was
-
Das du dich bei mir mal wegen eines Scripts bedankst.. das hätte ich ja nie erwartet
Hallo Boersenfeger..es ist doch völlig egal wer mir geholfen hat, sich zu bedanken ist das mindeste was sich gehört :wink:
-
// das hattest du völlig falsch verstanden...
-
Ok, Profil und Chrome Ordner funktionieren wieder.
Code
Alles anzeigen// Profilordner (function() { if (location != 'chrome://browser/content/browser.xul') return; try { CustomizableUI.createWidget({ id: 'Profilordner', type: 'custom', defaultArea: CustomizableUI.AREAS, onBuild: function(aDocument) { var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton'); var props = { id: 'Profilordner', class: 'toolbarbutton-1 chromeclass-toolbar-additional', removable: true, label: 'Profil Button"', tooltiptext: '', style: 'list-style-image: url(data:image/gif;base64,R0lGODlhEAAQAOZMAP/////MAF06AJhlAJNgAP//AP/lAP/UAJViAP/JANShAJRhAP/OAJRgAOy5AMaSAP/nAMyZAP/IAP/NAOazAP/RAMmVALaAAH5TAJNfAM2aAP/dT//XOv/KAOPOkMeRAP/nhOSxAOu4AP3KAOrTkv/nrv//1c6bAKdyAP/TAP/bPdWsMr6LA7iCALqGALiEAJNeAMCMAP/gcv/eYdGdAP/TEP/mgv/2y//gg/3JAP/ila97AP/aKsWPAJFbAJZgALeBAMiVAPC9AP/rOum2AHlQAP/4zP//z//jPpNdAP/LANixNP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEwALAAAAAAQABAAAAefgEyCg4SFhoeFDQ0LjIiCCyU5IwEBBAiXCAOEBDohFBREIg6jQgibODQKqgonDz0fPkkwDQMEMhYRERpBMUsAv8C1Mw8uLUAXKwA2EgkJDJoEGy8swAAgCZQMz0wEKigkN8wJHZQBFZrcPDsAHErllBMT6AQ1HkYVKQf6++hMGUgAhhgYSBAChH4/TBwpwLAhw35MMAiYSLFiEUcYmQQCADs=)', oncommand: "Services.dirsvc.get('ProfD', Ci.nsIFile).launch();" }; for (var p in props) toolbaritem.setAttribute(p, props[p]); return toolbaritem; } }); } catch(e) { }; })();
Code
Alles anzeigen// Chrome Ordner (function() { if (location != 'chrome://browser/content/browser.xul') return; try { CustomizableUI.createWidget({ id: 'Open-Chromefolder-button', type: 'custom', defaultArea: CustomizableUI.AREAS, onBuild: function(aDocument) { var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton'); var props = { id: 'Open-Chromefolder-button', class: 'toolbarbutton-1 chromeclass-toolbar-additional', removable: true, label: 'Chrome Ordner öffnen"', tooltiptext: '', style: 'list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAM1JREFUOI3tj80KAWEYhc/7fZNSalJCUsSOjfKzsXcf9q6B5iq4BnuyshHlCoSVkiQ1RX7SzPtaKTWosbLwbE/n6RwCgFxrUGFQBk+IwmnOkx4si/EBylv9MjNNQYo8qfAYWtdnzdryncBwWWfTpqZIUL3KqwAWxfbQE9gXd726UMlIRc1GIhyCwDvgEzFTks7+2KVyZyF+yw8IDPVtGQAECi+P++Ev+AmBQL5vi8C42butDobi8C0iOOfDxhC+Fq72saqgfN1hMDsBGd0BybdFDCX6fDQAAAAASUVORK5CYII=)', oncommand: "Services.dirsvc.get('UChrm', Ci.nsIFile).launch();" }; for (var p in props) toolbaritem.setAttribute(p, props[p]); return toolbaritem; } }); } catch(e) { }; })();
Problem, mit einer Datei wie z.B. der userChrome.css oder auch einem Unterordner finde ich keine Möglichkeit :oops:
Z.B. den CSS Unterordner zu öffnen.
Code
Alles anzeigen(function () { if (location != 'chrome://browser/content/browser.xul') return; const buttonId = 'Open-CSS-button'; const buttonLabel = 'CSS Ordner öffnen'; const buttonTooltiptext = ''; const buttonIcon = 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADJklEQVR4Xi3Pb0yVdRjG8e/ze57ncDrAOWwRhDQ7xYAMlAgIBW2txaio5TvMzZa68oWtzRdKbXbIpWyOzcWLWqXkFjUtsIksW72wuTVx+EJHCxhkSCNoKLYDwuH8e66eNV98dr24t/u+LwsAoKsucqg4tFS4kiTtge4PFAkRksADGdsyua4JXJ7ITH0yQw+ABTB3sHGipGNjJX8MgzGw6oEBQi5kPYinQBYEbDDAX5PEulJXPhqn2bQE2Fayfa2S8THOfu/wzTkDzmOQV8nAkOHMoIFgmS9K3w/i5DmP1fwqdrbRFIR6euqJ6btc2Y4jsGWM0emOWrU2FAtQRTSiid7n9EJtkQCVlebrUle9lnuLVA3v09/G8diLCFxp+DVprF2a2KHqsrACtqVbQy9L8T2qq4goaKOpz5uka22Kn1yn2gBHOPMSx9o3obJokbS8R/p3txTfK918Q+2tjwrQYPcWaW6Xdj5fKkB9B2uks+v1VICYSWXQjia4eWuB8z2/0//pGMMD04yP3qFzfzXBoE3sszGmR27Tubuc3KDDsf4ZsME2iO4GjuqXQh1orxDwv1OxBsX2VQlQcWGObnzdog/3bhCg0uIHNPLFVqnf/8DlA2ctDSTgxNFnOHFgE7jAg7kQcjnS8TRgQcCiprGQzncrIZ0i/u0so7lLODlgsh6QSMNCAix8BhJJNH6b5NwyFNhwLwWuB/NxEoemudi9wMT8Cq4LBrDwgLUULK/BPR9+jC4ytPUC17/8DR6CpYEplt+eJTX7OH9HbEL5NvKwjGvj4AHprC8DSZ+/zHJgI+uI+xdvbL9E+JRLJr+Sr5LXKd8foqY8QjqN7fxzlzhaAy8LGYHnQTxJ3hNhFlptCi4XsP7PEoaD4mr4KlveeZjNG4qYvDbKyipJolCXOI70U630Y6uvRfrZzyuvSKOvavK9Kp2OFqv3zagWLzb7s21aubBZ519HFjzrg8NP8utbu2hWMIyyHpYBYwyOa2Hn2cwuJAiHAthp+e087s4n6e5LjwzeodECAKiAffk5PJLOkJKFACzLZ8B27jfMYgUM7mKSuzPwMcB/6Jh/V5xUni0AAAAASUVORK5CYII=)'; function buttonFunction() { var dir = Services.dirsvc.get('UChrm', Ci.nsIFile); dir.append('CSS'); dir.launch(); }; var button = document.createElement('toolbarbutton'); button.id = buttonId; button.setAttribute('class', 'toolbarbutton-1 chromeclass-toolbar-additional'); button.removable = 'true'; button.setAttribute('label', buttonLabel); button.setAttribute('tooltiptext', buttonTooltiptext); button.style.listStyleImage = buttonIcon; button.addEventListener('click', function (event) { if (event.button == 0) buttonFunction(); }); document.getElementById('navigator-toolbox').palette.appendChild(button); var toolbars = Array.slice(document.querySelectorAll('toolbar')); for (var i=0; i<toolbars.length; i++) { var currentset = toolbars[i].getAttribute('currentset'); if (currentset.split(',').indexOf(button.id) >= 0) { var j; if (i == 0) j = 1 else j = 0; toolbars[j].currentSet += ','+button.id; toolbars[i].currentSet = currentset; }; }; }) ();
Evtl. fällt einem anderen User ja noch etwas ein dazu.
Vielen Dank schon mal.
-
Was mir auffällt: Bei den funktionierenden Skripten wird der Button mit CustomizableUI.createWidget erzeugt, bei den nicht funktionierenden nicht. Also...
-