Drum meine Frage....
Hatte eben nochmal editiert.... ist das neueste Nightly..
Edit: Diese Codes werden einwandfrei abgebildet...
[attachment=1]Unbenannt1.JPG[/attachment]
[attachment=0]Unbenannt2.JPG[/attachment]
extras_config_menu funktioniert im Nightly nicht mehr
-
edvoldi -
1. Mai 2019 um 17:48 -
Erledigt
-
-
Könnte als u.U. an deiner Nutzung von UserCSSLoader.uc.js liegen :-??
Lt. Überschrift von Bug 1541233 wird nur das Laden der userContent.css verhindert, die Nutzung von benutzerdefiniertem CSS selbst wird hier nicht unterbunden. Mit dem UserCSSLoader-Skript sollte also das Ganze noch funktionieren. -
das Laden der userContent.css verhindert
Meine geänderten Webseiten in der userContent.css funktionieren alle. Nur alle about Seiten nicht.
Mit dem UserCSSLoader-Skript
Kurz mal installiert, und alles funktioniert wieder.PS:
Das hat aber alles nichts mit dem Script extras_config_menu zu tun.
Das funktioniert hier im aktuellen Nightly einwandfrei. -
Na, dann kann ich ja erstmal beruhigt sein...
Vielleicht sollte man den letzten Teil in einen eigenen Thread auslagern... -
Meine geänderten Webseiten in der userContent.css funktionieren alle. Nur alle about Seiten nicht.
Ja, so ist es wohl auch. Dass die userContent.css für about-Seiten nicht funktioniert, liegt wohl auf der Linie von Mozilla, in Zukunft die benutzerdefinierte Veränderung der Firefox-Oberfläche einzuschränken, was ja schon mit Einführung der Webextensions geschehen ist. Denn obwohl die about-Seiten Seiten sind, sind sie dennoch Bestandteil der Firefox-Oberfläche. Das ist das Problem.ZitatKurz mal installiert, und alles funktioniert wieder.
Sage ich ja. Hier geht es nur um userContent.css und nur da, wo sie die about:-Seiten, also die Firefox-Oberfläche, verändert.ZitatDas hat aber alles nichts mit dem Script extras_config_menu zu tun.
Das funktioniert hier im aktuellen Nightly einwandfrei.
Der Aufruf der about-Seiten funktioniert über extras_config_menu,uc.js. Aber, wenn du z. B. about:addons über extras_config_menu.uc.js aufrufst, erscheint da deine angepasste Version des Add-on-Managers oder nur die Standardversion? -
erscheint da deine angepasste Version des Add-on-Managers
Ja.[attachment=0]Animation.gif[/attachment]
-
Hallo,
habe den Code aus #14 mal installiert - sieht so aus:
[attachment=0]ExtraConfigMenu-button.jpg[/attachment]
Was muss da noch angepasst werden? Bildchen sieht in Natur noch mickriger aus. :-?? -
habe den Code aus #14 mal installiert
Im Nightly oder Release?Da funkt dir etwas dazwischen, der erste Eintrag fehlt komplett.
Hier sieht das so aus in Fx 66
[attachment=0]Screenshot (289).png[/attachment]
-
Ja.
Bei mir nicht. Allerdings, habe ich hier diesen Thread nicht ganz verfolgt, das heißt, ich habe bisher keine Änderung am Skript vorgenommen. -
Teste diesen Code bitte mal:
CSS
Alles anzeigenmenupopup#ExtraConfigMenu-popup menuitem:hover, menupopup#ExtraConfigMenu-popup menu:hover{ color:white!important; cursor:pointer !important; } #ExtraConfigMenu-button > dropmarker, #ExtraConfigMenu-button > hbox > .toolbarbutton-menu-dropmarker { display: none!important; } menupopup#ExtraConfigMenu-popup menu:hover >.menu-right{ list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADPUlEQVR42mWTbWgUVxSG33tn5maz69rE7MYtGzF2xWiSgloRQWq1ftBE0YClQlgU2jSUFokxfhUKFcSmxfijpZTWalvoQn+kfqVCqW0h9oepFRqIlNBJNzTEbTaiu1mTnezunY+eGWvQOvAyM2fuec65c97L8L9rXtPRyqrYyviSmoWbFc5rKGQWS1IfGUt9N6MPXMxf+8x8dD179KV2/zdttdFIz32j9NRYOgPbDTqAUDli0RA0hf05PDK6784XbTeeACzrOn8iGAi8M5rOQlEEuKKAMe59c2wbliXpwUJDbXUhOXZ7V+rTvVfnAJHXv2wJh8MXUnfzTBVlUFUXoIFz7jZAAAuWKWHKoqel0cop/Y+hxlzvkRQrW/MKj73Yqk9kjZgm/Hhrax1yRQeXhrIEULwtVJQzJF6tx55PbiB1LwduS1QEtM/107vbWaDl5AvhxXX905Qkyvw43LwcndueQe/vd9H94ySKpo3IPI6fOxrw/PvXMTKRgSwYCPrYzJ3BqyEWeu2rYxZTu1WqLnwBHGpahgNbar29D08WcbgvDSklfnhzKTae+g0j/9xDqWhAhYn7Y7fWsPn7zvVwzdflVn8I6Ni8eG4y0wULb19J4+OXo9jUcxO6C6AOLDmLwoT+EvPHz7xLycc1SnYhh5rqqIMHANt2cGYgi8u3svj+jdh/HWSogzxBSGl9PStv6d6pVUYvC58f2sN/sHUJMoaJY30pXB/NIxJk+Gn/Cmz4YGAOIIuGLCZ/DTGxbm+5qNs4TtWrVFGOIzvqsWl5NTp6/8LktO056en5Cq51rcb6937xAJRMmu3Lf922y/MBbeOgKnynNeFDfU0I4zmTXEhGIh+4Y1SYjW31lbgyeBuGQcmlgmnOZNbOfntw0ANoq3Zz0dh0UdXKdiqagOIZSQVnrpEcz4m2ZZKZSq6RHFKnkWj/8DErR7Z3Clnd8JF01Hauasw10ZyVnQcA25J5H7cO0Fk4+9hZSCQSMbotMqRTkZyyt9xM23v0LBbkSvAQYT/sxir293ML+blokA0LhU1ReDwejydZa2sra25ufpYCLqSCFCQJUsCiMTIqwZlXJ0+SrjVILiDZ398/9C+BxGPXQXJ2bQAAAABJRU5ErkJggg==") !important; -moz-image-region: rect(0px 15px 15px 0px) !important; } .uProfMenu_clipboard{ -moz-appearance:none!important; background: url("data:image/gif;base64,R0lGODlhEAAQAOZFAP///wBdAH+LmP//AIuXo5ulr4GMmVtkbeTn6WNrdGJqcwBEANzl7J6nse3z+QBJAABIAOzy98HN1ys2QgBCABeuEQBAAFBZY11ncCe6IzK1GyczPmFpcfb3+SivG5+uvNXf6XmFkmVueTA7Rru/w/r8/oaSngOhEQ6iDvX291DVPu7w8mRsdWx2gO/x80dQW/L3/aCpsi+6Hd3l7Njc3+zu8K22vximDhuqDyk1QCgzP3N9iefp6xytHvj5+ik0P+nr7Orw9rrG0oKNmk9YYv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEUALAAAAAAQABAAAAeXgAQERYSFhodFg4iLiYyLio6GJgYClZaXQwKEIQCdnp8APgeEOzUFDAinqTOpo4QtKw0SPLIpnySFIjAOEUG8AAHBAYYYLjEfQDSdAQMDw4UHJTZCHcDBAz3CRQkvOjk/G8DNAx4ZztuIzCcoNzgVAQlEHBcsCgoAEBYBKhoBCw9FJoCYYGjZABnPihgYYcCQAXwU/hEKBAA7") no-repeat !important; padding-left:6px!important; background-position:5px 2px!important; } .uProfMenu_clipboard:hover{ -moz-appearance:none!important; background: red url("data:image/gif;base64,R0lGODlhEAAQAOZFAP///wBdAH+LmP//AIuXo5ulr4GMmVtkbeTn6WNrdGJqcwBEANzl7J6nse3z+QBJAABIAOzy98HN1ys2QgBCABeuEQBAAFBZY11ncCe6IzK1GyczPmFpcfb3+SivG5+uvNXf6XmFkmVueTA7Rru/w/r8/oaSngOhEQ6iDvX291DVPu7w8mRsdWx2gO/x80dQW/L3/aCpsi+6Hd3l7Njc3+zu8K22vximDhuqDyk1QCgzP3N9iefp6xytHvj5+ik0P+nr7Orw9rrG0oKNmk9YYv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEUALAAAAAAQABAAAAeXgAQERYSFhodFg4iLiYyLio6GJgYClZaXQwKEIQCdnp8APgeEOzUFDAinqTOpo4QtKw0SPLIpnySFIjAOEUG8AAHBAYYYLjEfQDSdAQMDw4UHJTZCHcDBAz3CRQkvOjk/G8DNAx4ZztuIzCcoNzgVAQlEHBcsCgoAEBYBKhoBCw9FJoCYYGjZABnPihgYYcCQAXwU/hEKBAA7") no-repeat !important; padding-left:6px!important; background-position:5px 2px!important; } .uProfMenu_ucjs{ -moz-appearance:none!important; background: url("data:image/gif;base64,R0lGODlhEAAQAOZQAP///wBmAPv6+gBzAIjtUXnePiczPqn/cSgzP/n8/vf5/LvFz+3y9/D0+bzG0AAbiSo1Qb/J0/b4+5z/Zuzx9rzH0WJqdbvFzvz9/m14g7jBzB6q/3J+iABky2Ntdw2JB8HL1b/J0sbP2Gpzf/n7/K7h/xSNCiiXFsrT2/38/Pr6+8XJzj+fDiaWFSKs/7nnGOfr7ubp7CSv/wBdyACZAAuIBg6gBxelDNbz/3uIlHmDkABaxc3w/xOMCQBgyUpUXun3BQAbigAcigmIBQBfyQBDsABcyPn6/MfQ2UpTXgqeBc3V3sPN1lzIMYyVms7x/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAFAALAAAAAAQABAAAAe/gFCCg4IBhoeEiQEHjI0BiYUTTUAvLQMmEwEdRDNGOwIBBCcDLAMAAwQBPiVPPDigBKamp6kdMhsbLrCzpx+pRUIPD0GwPbIfNqlOAMwAoAU3NQNDSjQFATnNADDPBd7eAQI6SyIiSCgxoIeGAiscAEckGEwYKgL3+CkcGQASCgkREij4F1CBBAAZRoC4sMBBCAcLGj5ccAHECA8AKDBooKEBg40dGVAA4MGCtgontVlIgsCAAQQQWr6M6RLBj0AAOw==")no-repeat !important; padding-left:5px !important; background-position:5px 2px!important; } .uProfMenu_ucjs:hover{ -moz-appearance:none!important; background: red url("data:image/gif;base64,R0lGODlhEAAQAOZQAP///wBmAPv6+gBzAIjtUXnePiczPqn/cSgzP/n8/vf5/LvFz+3y9/D0+bzG0AAbiSo1Qb/J0/b4+5z/Zuzx9rzH0WJqdbvFzvz9/m14g7jBzB6q/3J+iABky2Ntdw2JB8HL1b/J0sbP2Gpzf/n7/K7h/xSNCiiXFsrT2/38/Pr6+8XJzj+fDiaWFSKs/7nnGOfr7ubp7CSv/wBdyACZAAuIBg6gBxelDNbz/3uIlHmDkABaxc3w/xOMCQBgyUpUXun3BQAbigAcigmIBQBfyQBDsABcyPn6/MfQ2UpTXgqeBc3V3sPN1lzIMYyVms7x/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAFAALAAAAAAQABAAAAe/gFCCg4IBhoeEiQEHjI0BiYUTTUAvLQMmEwEdRDNGOwIBBCcDLAMAAwQBPiVPPDigBKamp6kdMhsbLrCzpx+pRUIPD0GwPbIfNqlOAMwAoAU3NQNDSjQFATnNADDPBd7eAQI6SyIiSCgxoIeGAiscAEckGEwYKgL3+CkcGQASCgkREij4F1CBBAAZRoC4sMBBCAcLGj5ccAHECA8AKDBooKEBg40dGVAA4MGCtgontVlIgsCAAQQQWr6M6RLBj0AAOw==")no-repeat !important; padding-left:5px !important; background-position:5px 2px!important; } #submenu-ucjs{ -moz-appearance:none!important; background: url("data:image/gif;base64,R0lGODlhEAANAJECAP7/AFFRUQAAAAAAACH5BAEAAAIALAAAAAAQAA0AAAInlI+ZwawYgJThiThnawbnD1QXCFbbuYUjSUUmqzkry820aJcQegoFADs=") no-repeat !important; padding-left:5px !important; background-position:5px 2px!important; } #submenu-ucjs:hover{ -moz-appearance:none!important; background: red url("data:image/gif;base64,R0lGODlhEAANAJECAP7/AFFRUQAAAAAAACH5BAEAAAIALAAAAAAQAA0AAAInlI+ZwawYgJThiThnawbnD1QXCFbbuYUjSUUmqzkry820aJcQegoFADs=") no-repeat !important; padding-left:5px !important; background-position:5px 2px!important; } .uProfMenu_folder{ -moz-appearance:none!important; background: url("data:image/gif;base64,R0lGODlhEAANAJECAP7/AFFRUQAAAAAAACH5BAEAAAIALAAAAAAQAA0AAAInlI+ZwawYgJThiThnawbnD1QXCFbbuYUjSUUmqzkry820aJcQegoFADs=") no-repeat !important; padding-left:5px !important; background-position:5px 2px!important; } .uProfMenu_folder:hover{ -moz-appearance:none!important; background: red url("data:image/gif;base64,R0lGODlhEAANAJECAP7/AFFRUQAAAAAAACH5BAEAAAIALAAAAAAQAA0AAAInlI+ZwawYgJThiThnawbnD1QXCFbbuYUjSUUmqzkry820aJcQegoFADs=") no-repeat !important; padding-left:5px !important; background-position:5px 2px!important; } .uProfMenu_edit{ -moz-appearance:none!important; background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB3ElEQVQ4jY2RT2gTQRTGf4nbJi2GYqEtBS8V9aASEC82eNGrIBJRUE/Si2cvUiSyF+kxaEt66aGgHixWehUR8e+lldrUhARarTXVYoghySTrsN2Mh7rLbnYLPni8N/Pe9833MSFd1xVAPB4nm836KoCu6yE6It0bUVstSdiyLBKJBMlkMhRU/xEoN3jl1QfV7BvaPaRSKSVNqaYzGaeKpqGmMxlVqdaVrutKmlK5SaaeLKkLV28pD8FeaRPYvfUmpubSF1V6alYBaEIIAH43/lCpi06rAEzcmwDgfHwVUxgMflngyuRCCECzl/pjUfpjUR94/M6403e9j7H81iJy8DiQw0MghORnrRGoAOCIuI002tTKinMPcs6vaO6lnqi+J0HXxhyL7yzqI9eBx869JqUE4Gu5SLd2MhB8tDpDvdqm2VC8bg16Zo6CtR9rHBh56gPv3zdMd+MzK0sWhy/fh2cbnnnYNE0AiqUi2zvSl6dKL6hstxFmL0Onb2Ir9ikofC8gThie4WjPWVbXh2nn51k8dI0zAfbCbguftlqeNNZr3J3JEz52ifncMgC2YkeBYey+uvnrGx8ny57hSwoQgecP8wz0DQS877Kw+agUuNAZPgUAYzfG/gscFH8BK6UWeTrOl9gAAAAASUVORK5CYII=")no-repeat !important; padding-left:6px !important; background-position:5px 2px!important; } .uProfMenu_edit:hover{ -moz-appearance:none!important; background: red url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB3ElEQVQ4jY2RT2gTQRTGf4nbJi2GYqEtBS8V9aASEC82eNGrIBJRUE/Si2cvUiSyF+kxaEt66aGgHixWehUR8e+lldrUhARarTXVYoghySTrsN2Mh7rLbnYLPni8N/Pe9833MSFd1xVAPB4nm836KoCu6yE6It0bUVstSdiyLBKJBMlkMhRU/xEoN3jl1QfV7BvaPaRSKSVNqaYzGaeKpqGmMxlVqdaVrutKmlK5SaaeLKkLV28pD8FeaRPYvfUmpubSF1V6alYBaEIIAH43/lCpi06rAEzcmwDgfHwVUxgMflngyuRCCECzl/pjUfpjUR94/M6403e9j7H81iJy8DiQw0MghORnrRGoAOCIuI002tTKinMPcs6vaO6lnqi+J0HXxhyL7yzqI9eBx869JqUE4Gu5SLd2MhB8tDpDvdqm2VC8bg16Zo6CtR9rHBh56gPv3zdMd+MzK0sWhy/fh2cbnnnYNE0AiqUi2zvSl6dKL6hstxFmL0Onb2Ir9ikofC8gThie4WjPWVbXh2nn51k8dI0zAfbCbguftlqeNNZr3J3JEz52ifncMgC2YkeBYey+uvnrGx8ny57hSwoQgecP8wz0DQS877Kw+agUuNAZPgUAYzfG/gscFH8BK6UWeTrOl9gAAAAASUVORK5CYII=")no-repeat !important; padding-left:6px !important; background-position:5px 2px!important; } #submenu-about, .uProfMenu_about{ -moz-appearance:none!important; background: url("data:image/gif;base64,R0lGODlhEAAQANUvAP////r7/fj6++/z98kdAPH1+PT2+e3x9unv85kAAP8zAPb4+nqHkyczPiYyPm54g/D0+O7y9mVwevX4+nB6hzA7RoKNmv7+/3N+io6apXqGkyk1QDQ/SWNtd2t1geju8nWBjXqGkmhzfunv9DdCTWZveuvw9Orv8+zw9fP1+XyIlXiDkYuXoyUxPoyYo////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAC8ALAAAAAAQABAAAAadwJdw+MpkiEgiCwBwJS0qBkOzYjJXGqnKErJaLxcvMwQCBM6Es1oNAGEAAgFBHq/HARgKYLJQEBQLCwR/CxMAFA8AKQYEjAaPBgoGKQAPHgAQBQmaBZ0KnRAAHiIAEQOnqASoEQAiEgAoB7KzCbUHKAASHQAfCL4nJiYnvggfAB0lYgAjI8olFRsNDQ4tXg4O0hsVSRxMHEngJCTgQQA7") no-repeat !important; background-position:5px 2px!important; } #submenu-about:hover, .uProfMenu_about:hover{ -moz-appearance:none!important; background: red url("data:image/gif;base64,R0lGODlhEAAQANUvAP////r7/fj6++/z98kdAPH1+PT2+e3x9unv85kAAP8zAPb4+nqHkyczPiYyPm54g/D0+O7y9mVwevX4+nB6hzA7RoKNmv7+/3N+io6apXqGkyk1QDQ/SWNtd2t1geju8nWBjXqGkmhzfunv9DdCTWZveuvw9Orv8+zw9fP1+XyIlXiDkYuXoyUxPoyYo////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAC8ALAAAAAAQABAAAAadwJdw+MpkiEgiCwBwJS0qBkOzYjJXGqnKErJaLxcvMwQCBM6Es1oNAGEAAgFBHq/HARgKYLJQEBQLCwR/CxMAFA8AKQYEjAaPBgoGKQAPHgAQBQmaBZ0KnRAAHiIAEQOnqASoEQAiEgAoB7KzCbUHKAASHQAfCL4nJiYnvggfAB0lYgAjI8olFRsNDQ4tXg4O0hsVSRxMHEngJCTgQQA7") no-repeat !important; background-position:5px 2px!important; }
-
m.E. im Nightly 680a1 - schaue aber sicherheitshalber noch mal nach.
Es ist die Nightly v. 03.05.19. -
Dann siehe das Movie in Beitrag Nr. 46, das ist vom Nightly.
-
m.E. im Nightly 680a1
Wenn du mein Script mit der Uhr und deinem Namen verwendest, dann steht doch oben die gerade genutzte Fx Version drin :-?? -
Teste diesen Code bitte mal:
Meinst du mich? Das ist doch reiner CSS-Code, das hat nichts mit dem Skript zu tun. -
Meinst du mich?Neee...ich meinte Büssen damit, weil laut seinem Screenshot alle Icons verrutscht sind etc. :wink:
-
Meinst du mich?
Sorry, ich hatte deinen Beitrag Nr. 49 übersehen.Das ist mein genutztes Script im Nightly.
CSS
Alles anzeigen// ==UserScript== // @name extras_config_menu.uc.js // @compatibility Firefox 8.*, 9.*, 10.*, 11.*, 12.*, 13.*, 14.*, 15.*, 16.*, 17.*, 57.* // @include main // @version 1.0.20180113 // ==/UserScript== var uProfMenu = { // Beginn der Konfiguration // In der folgenden Zeile (11) den Pfad zum Texteditor eintragen (unter Ubuntu 10.04 z.B.: '/usr/bin/gedit'). Bei Fehleintrag wird view_source.editor.path ausgelesen: TextOpenExe : 'C:\\Program Files (x86)\\Notepad++\\notepad++.exe', // Falls gewuenscht, in Zeile 15 einen Dateimanager eintragen (komplett leer lassen fuer Dateimanager des Systems) Beispiele: // vFileManager: 'E:\\Total Commander\\Totalcmd.exe', // vFileManager: 'C:\\Program Files (x86)\\FreeCommander\\FreeCommander.exe' vFileManager: '', // In der folgenden Zeile (19) 'menu' eintragen, damit es unter "Extras" als Menue erscheint, sonst die id des gewuenschten // Elements *nach* dem der Button erscheinen soll (z.B. 'urlbar', 'searchbar', 'undoclosetab-button','abp-toolbarbutton') // Bitte nicht so etwas wie die Menue- oder Navigationsleiste (sondern einen Menuepunkt oder einen Button mit id auf diesen Leisten) eintragen: warpmenuto: 'helpMenu', // Unter Linux sollte/kann versucht werden, die userChromeJS-Skripte zu sortieren, unter Windows ist das evtl. nicht noetig (die Sortierung wird Gross- und Kleinschreibung *nicht* beruecksichtigen - dazu wird die sort()-Funktion entsprechend mit einer Vergleichsfunktion aufgerufen) sortScripts: 0, // 1 zum Erzwingen der Sortierung // Einbindung GM-Skripte-Ordner (0: nein, 1: Greasemonkey [Profil-Verzeichnis], 2: UserScriptLoader [Chrome-Verzeichnis], 3: Scriptish [Profil-Verzeichnis]): gmOrdner: 0, // Einbindung CSS-Ordner (0: nein, 1: UserCSSLoader-Ordner im Chrome-Verzeichnis): cssOrdner: 1, // In Zeile 30 gueltige about:Adressen eintragen, die ebenfalls aufgerufen werden sollen. // - Zum Ausblenden: abouts: [], // - Damit die about:-Seiten nicht als Untermenue, sondern direkt als Menuepunkte aufgefuehrt werden, muss das erste Element '0' sein: // abouts: ['0','about:about','about:addons','about:cache','about:config','about:support'], abouts: ['about:about','about:addons','about:cache','about:config','about:crashes','about:home','about:memory','about:support','about:preferences','about:performance','about:profiles'], // Die normalen Firefox-Einstellungen auch zur Verfuegung stellen (0: nein, 1: ja): showNormalPrefs: 0, // Stellt "Skriptliste in Zwischenablage" zur Verfuegung (1: ja, 2: mit getrennter Nummerierung, 3: mit gemeinsamer Nummerierung) oder nicht (0): enableScriptsToClip: 1, // Um den Eintrag "Neustart" zu erzwingen (falls z.B. das andere Skript zu spaet eingebunden und nicht erkannt wird), auf 1 setzen: enableRestart: 0, // Ende der Konfiguration init: function() { if (this.warpmenuto.toLowerCase() == 'menu') { // aufgrund des gewaehlten warpmenuto als Untermenue von Extras anlegen var zielmenu = document.getElementById('menu_ToolsPopup'); if (zielmenu==null) { userChrome.log("extras_config_menu.uc.js findet Zielmenue nicht, evtl. weil ein anderes Fenster als das Hauptfenster " + "geoeffnet wurde. Falls dieser Fehler auch im Hauptfenster auftritt, bitte die vorgehende Definition " + "von 'zielmenu' kontrollieren."); return; } var menu = zielmenu.appendChild(this.createME("menu","Config Men\u00FC",0,0,"ExtraConfigMenu")); menu.setAttribute("class","menu-iconic"); menu.setAttribute("ondblclick","openTrustedLinkIn('about:config', 'tab');"); } else { // als Button nach dem per warpmenuto gewaehlten Element anlegen (s. Kommentar ueber warpmenuto im Konfigurationsabschnitt) var zielmenu = document.getElementById(this.warpmenuto); if (zielmenu==null) { userChrome.log("extras_config_menu.uc.js findet Zielpunkt '"+this.warpmenuto+"' nicht, evtl. weil ein anderes Fenster als das Hauptfenster " + "geoeffnet wurde. Falls dieser Fehler auch im Hauptfenster auftritt, bitte die vorgehende Definition " + "von 'warpmenuto' kontrollieren."); return; } var menu = zielmenu.parentNode.insertBefore(document.createElement('toolbarbutton'), zielmenu.nextSibling); menu.setAttribute("id", "ExtraConfigMenu-button"); menu.setAttribute("class", "toolbarbutton-1"); menu.setAttribute("type", "menu"); menu.setAttribute("tooltiptext", "Extra Config Menü\nMittelklick \öffnet about:config"); menu.setAttribute("onclick", "if (event.button === 1 && !this.open) openTrustedLinkIn('about:config', 'tab');"); } //ab hier ist alles gleich, egal ob Button oder Menue var css = " \ #ExtraConfigMenu, #ExtraConfigMenu-button { \ list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACnElEQVR4Xm2RzYtbZRSHn/fr3pvJzTB3qiNM2k2pMBUGhEHaqsUqdeFGQalCobgREaFu/B/cqCtxVSjoQhBEQRBmIfWDKgNGJUPt0Nhah9JJ4iSd5E6+bu5972tAO4SS5/DjXZ1znsMrNiq1eikMQqYYJCmjxNH5+zdW777L0J5KKl9VPmnf+ut9KWkwhbheuzNcOVYOmGKc5iRO0r1ykeXCx0h7kt4fC3z5wfqbQnAJwQHa5S7jAZSRuJ0mkf81cheobhBXZa+ri1uptQjHAZoZCEC1PiPgDuwxCfwerBU7b73zXn//3usCcdt4HkZ7SGZg431U51NUCgwlO3cV/bVXhR/6p9ut+nP9QYeNn7/n8qUPZxvQ/Q6VVWHk4ZqWRvlJjpx9hcGfW2wO95N2q8m3618A2WwDt/0RplSAXsBed57eyossHl5GYdHacG3zGpADM06wjQ1UUIN+CLHPvfAxojPnKLiE+bDE1R9+5GatAmgPeGCAteQ7l5GBhGSyuROyd/gFouUyWkqEErR2mwXAAA8BRS0AgMQBjSra30ZkEeDzz9Dn4ZcvMO51SMcJcTdGChmA0ABA6cAgzyG3I8jLEBylV4fWoaeIc0V7t0Uv7pFbC+CA+28mp/8+SwXKnMVmz1O9HpE+eobMZdjcoY1GIHD/NwIdoH1fBaNguzlg88pVyoUi4vTbFI8eJxsNAIfSkrliESllH/L0v0jktNNomFGv1TFrL3Fo9QSMR3jaEEXzLC09gjaKp595No0WjyCEB4zRclICUMDxtRMce/wJ1MIi2SglXShhfI/cOjxPoZRmbq4gXzt/gVrtBrdvbiG+Wf+p/mvll1BpiVAGhCDPxuAUDotz4HKHlIJON6bRbL4hhPjcMx5mkn8BBLEUrsVZbq0AAAAASUVORK5CYII=) !important; \ } \ #ExtraConfigMenu-button > dropmarker, #ExtraConfigMenu-button > hbox > .toolbarbutton-menu-dropmarker { \ display: none !important; \ }"; var sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService); var uri = makeURI('data:text/css;charset=UTF=8,' + encodeURIComponent(css)); sss.loadAndRegisterSheet(uri,sss.AGENT_SHEET); menu.setAttribute("onpopupshowing","uProfMenu.getScripts(0)"); var menupopup = menu.appendChild(this.createME("menupopup",0,0,0,"ExtraConfigMenu-popup")); // menupopup.appendChild(this.createME("menuitem","userChrome.js","uProfMenu.edit(0,'userChrome.js');","uProfMenu_edit",0)); // Anlegen von Untermenues fuer die userChromeJS-Skripte (befuellt werden sie spaeter) var submenu=menupopup.appendChild(this.createME("menu","uc.js",0,0,"submenu-ucjs")); var submenupopup = submenu.appendChild(this.createME("menupopup",0,0,0,"submenu-ucjs-items")); //var submenu=menupopup.appendChild(this.createME("menu","uc.xul",0,0,"submenu-ucxul")); //var submenupopup = submenu.appendChild(this.createME("menupopup",0,0,0,"submenu-ucxul-items")); if (this.enableScriptsToClip) menupopup.appendChild(this.createME("menuitem","Skriptliste in Zwischenablage","uProfMenu.getScripts(1)","uProfMenu_clipboard",0)); // Ende Anlegen von Untermenues fuer die userChromeJS-Skripte menupopup.appendChild(document.createElement('menuseparator')); // Einbindung von Konfigdateien menupopup.appendChild(this.createME("menuitem","userChrome.css","uProfMenu.edit(0,'userChrome.css');","uProfMenu_edit",0)); menupopup.appendChild(this.createME("menuitem","userContent.css","uProfMenu.edit(0,'userContent.css');","uProfMenu_edit",0)); menupopup.appendChild(this.createME("menuitem","prefs.js","uProfMenu.edit(1,'prefs.js');","uProfMenu_edit",0)); menupopup.appendChild(this.createME("menuitem","user.js","uProfMenu.edit(1,'user.js');","uProfMenu_edit"),0); menupopup.appendChild(this.createME("menuitem","userChrome.js","uProfMenu.edit(0,'userChrome.js');","uProfMenu_edit",0)); // Ende Einbindung von Konfigdateien menupopup.appendChild(document.createElement('menuseparator')); // Einbindung von Ordnern switch (this.gmOrdner) { case 1: menupopup.appendChild(this.createME("menuitem","GM Skripte","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('ProfD')+uProfMenu.getDirSep()+'gm_scripts');","uProfMenu_folder"),0); break; case 2: menupopup.appendChild(this.createME("menuitem","USL Skripte","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('UChrm')+uProfMenu.getDirSep()+'UserScriptLoader');","uProfMenu_folder"),0); break; case 3: menupopup.appendChild(this.createME("menuitem","Scriptish Skripte","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('ProfD')+uProfMenu.getDirSep()+'scriptish_scripts');","uProfMenu_folder"),0); break; } if (this.cssOrdner) { menupopup.appendChild(this.createME("menuitem","CSS-Ordner","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('UChrm')+uProfMenu.getDirSep()+'CSS');","uProfMenu_folder"),0); } menupopup.appendChild(this.createME("menuitem","Chromeordner","uProfMenu.prefDirOpen('UChrm');","uProfMenu_folder"),0); menupopup.appendChild(this.createME("menuitem","Profilordner","uProfMenu.prefDirOpen('ProfD');","uProfMenu_folder"),0); menupopup.appendChild(this.createME("menuitem","Addonordner","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('ProfD')+uProfMenu.getDirSep()+'extensions');","uProfMenu_folder"),0); menupopup.appendChild(this.createME("menuitem","Installationsordner","uProfMenu.prefDirOpen('CurProcD');","uProfMenu_folder"),0); menupopup.appendChild(this.createME("menuitem","Startup-Cacheordner","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('ProfLD')+uProfMenu.getDirSep()+'startupCache');","uProfMenu_folder"),0); // Ende Einbindung von Ordnern // Einbindung von abouts if (this.abouts.length>0) { menupopup.appendChild(document.createElement('menuseparator')); // falls der erste Eintrag des arrays ='0' ist, dann kein Untermenue anlegen, sondern direkt als Menuepunkte einbinden if (this.abouts[0]=='0') { for (var i = 1; i < this.abouts.length; i++) { menupopup.appendChild(this.createME("menuitem",this.abouts[i],"openTrustedLinkIn('"+this.abouts[i]+"','tab')","uProfMenu_about"),0); } } else { // der erste Eintrag des arrays ist ungleich '0', deshalb als Untermenue einrichten var submenu=menupopup.appendChild(this.createME("menu","uc.js",0,0,"submenu-about")); var submenupopup = submenu.appendChild(this.createME("menupopup",0,0,0,"submenu-about-items")); this.fillMenu("submenu-about","submenu-about-items", "about:",this.abouts,"uProfMenu_about",1); } } // Ende Einbindung von abouts // Separator, falls dieser nicht schon durch abouts generiert wurde und weitere Menuepunkte folgen werden if (this.abouts.length==0 && (this.showNormalPrefs || typeof(ToolRstartMod) != "undefined")) menupopup.appendChild(document.createElement('menuseparator')); // Falls gewuenscht (s. Konfigurationsabschnitt), Zugriff auf die normalen Einstellungen if (this.showNormalPrefs) menupopup.appendChild(this.createME("menuitem","Einstellungen","try{openOptionsDialog();}catch(e){openPreferences();}","uProfMenu_prefs"),0); // Falls addRestartButton installiert ist, Neustart zur Verfuegung stellen (addRestartButton 1.0.20120105mod erforderlich) if(typeof(ToolRstartMod) != "undefined" || this.enableRestart) menupopup.appendChild(this.createME("menuitem","Neustart", "try{ToolRstartMod.restartApp(false);} catch(e){alert(e);}","uProfMenu_restart"),0); }, getDirSep:function() { // Betriebssystem nach https://developer.mozilla.org/en/Code_snippets/Miscellaneous ermitteln var osString = Components.classes["@mozilla.org/xre/app-info;1"].getService(Components.interfaces.nsIXULRuntime).OS; var dirsep="/"; switch(osString) { case "WINNT": dirsep="\\"; break; case "Linux": dirsep="/"; break; case "Darwin": dirsep="/"; break; } return dirsep; }, edit:function(OpenMode,Filename){ var Path = ""; var dSep = this.getDirSep(); // die Trennzeichen zwischen Ordnern abhaengig vom Betriebssystem machen switch (OpenMode){ //Current is Chrome Directory case 0: var Path = this.getPrefDirectoryPath("UChrm") + dSep + Filename; break; //Current is Profile Directory case 1: var Path = this.getPrefDirectoryPath("ProfD") + dSep + Filename; break; //Current is Root case 2: var Path = Filename; break; } this.launch(this.TextOpenExe,Path); }, dirOpen:function(Path){ if (this.vFileManager.length != 0) { var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile); var process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess); var args=[Path]; file.initWithPath(this.vFileManager); process.init(file); // Verzeichnis mit anderem Dateimanager oeffnen process.run(false, args, args.length); } else { // Verzeichnis mit Dateimanager des Systems oeffnen var dir = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); dir.initWithPath(Path); dir.launch(); } }, prefDirOpen:function(prefDir){ Path = this.getPrefDirectoryPath(prefDir); this.dirOpen(Path); }, getPrefDirectoryPath:function(str){ // get profile directory var file = Components.classes["@mozilla.org/file/directory_service;1"] .getService(Components.interfaces.nsIProperties) .get(str, Components.interfaces.nsIFile); if (str == 'CurProcD') { file = file.parent; }; return file.path; }, launch:function(RanPath,OpenPath){ var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsIFile); var proc = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess); var args = [OpenPath]; file.initWithPath(RanPath); // falls der im Konfigurationsabschnitt definierte Editor nicht gefunden wird, auf Einstellung in about:config ausweichen: if (!file.exists()) { var pref = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch); RanPath=pref.getCharPref("view_source.editor.path"); file.initWithPath(RanPath); } proc.init(file); proc.run(false, args, args.length); }, stringComparison:function(a, b){ a = a.toLowerCase(); a = a.replace(/ä/g,"a"); a = a.replace(/ö/g,"o"); a = a.replace(/ü/g,"u"); a = a.replace(/ß/g,"s"); b = b.toLowerCase(); b = b.replace(/ä/g,"a"); b = b.replace(/ö/g,"o"); b = b.replace(/ü/g,"u"); b = b.replace(/ß/g,"s"); return(a==b)?0:(a>b)?1:-1; }, getScripts:function(iType) { // Arrays (jeweils ein Array fuer uc.js und uc.xul) nehmen Namen der gefundenen Skripte auf let ucJsScripts = []; let ucXulScripts = []; // Suchmuster, also die Dateierweiterungen uc.js und uc.xul let extjs = /\.uc\.js$/i; let extxul= /\.uc\.xul$/i; let aFolder = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile); aFolder.initWithPath(Services.dirsvc.get("UChrm", Ci.nsIFile).path); // files mit Eintraegen im Chrome-Ordner befuellen let files = aFolder.directoryEntries.QueryInterface(Ci.nsISimpleEnumerator); // Ordner bzw. files durchlaufen und kontrollieren, ob gesuchte Dateien dabei sind while (files.hasMoreElements()) { let file = files.getNext().QueryInterface(Ci.nsIFile); // keine gewuenschte Datei, deshalb continue if (!extjs.test(file.leafName) && !extxul.test(file.leafName)) continue; // uc.js gefunden -> im Array ablegen if (extjs.test(file.leafName)) ucJsScripts.push(file.leafName); // uc.xul gefunden -> im Array ablegen if (extxul.test(file.leafName)) ucXulScripts.push(file.leafName); } if (this.sortScripts) { ucJsScripts.sort(this.stringComparison); ucXulScripts.sort(this.stringComparison); } // Aufruf der naechsten Methoden um die beiden Untermenues oder die Zwischenablage zu befuellen if (iType==0) { this.fillMenu("submenu-ucjs","submenu-ucjs-items","Meine Scripte",ucJsScripts,"uProfMenu_ucjs",0); this.fillMenu("submenu-ucxul","submenu-ucxul-items", "uc.xul",ucXulScripts,"uProfMenu_ucxul",0); } else { var result=this.fillClipboardValue(ucJsScripts,ucXulScripts); Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper).copyString(result); } }, fillMenu:function(whichsubmenu, whichsubmenuitems, strlabel, scriptArray,sClass,sTyp) { // Beschriftung des Untermenues mit Anzahl der gefundenen Dateien ergaenzen var e = document.getElementById(whichsubmenu); e.setAttribute('label',strlabel + ' (' + scriptArray.length + ')'); var popup = document.getElementById(whichsubmenuitems); // zunaechst Untermenue zuruecksetzen while(popup.hasChildNodes()){ popup.removeChild(popup.firstChild); } // Untermenue endlich befuellen for (var i = scriptArray.length-1; i > -1; i--) { // bisher nur eine Typunterscheidung (userChromeJS-Skript oder about:) if (sTyp==0){ var mitem = this.createME("menuitem",scriptArray[i],"uProfMenu.edit(0,'"+scriptArray[i]+"')",sClass,0); mitem.setAttribute("onclick","uProfMenu.openAtGithub(event,'"+scriptArray[i]+"')"); mitem.setAttribute("tooltiptext"," Linksklick: Bearbeiten,\n Mittelklick: https://github.com/.../"+this.cleanFileName(scriptArray[i])+" \u00F6ffnen,\n Rechtsklick: Suche auf GitHub"); } else { var mitem = this.createME("menuitem",scriptArray[i],"openTrustedLinkIn('"+scriptArray[i]+"','tab')",sClass,0); } popup.insertBefore(mitem, popup.firstChild); } }, fillClipboardValue:function(sArray,xArray) { var retValue; var s = 0; var x = 0; s = sArray.length; x = xArray.length; switch(this.enableScriptsToClip) { case 1: retValue = "userChromeJS/uc.js ("+s+"):\n------------------------\n"+sArray.join("\n")+ "\n\nuserChromeJS/uc.xul ("+x+"):\n-------------------------\n"+xArray.join("\n"); break; default: retValue = "userChromeJS/uc.js ("+s+"):\n------------------------"; for (var i = 0; i < s ; i++) { j = i + 1; retValue = retValue + "\n" + j + ". " + sArray[i]; } retValue = retValue + "\n\nuserChromeJS/uc.xul ("+x+"):\n-------------------------"; if (this.enableScriptsToClip==2) s = 0; for (var i = 0; i < x ; i++) { j = i + s + 1; retValue = retValue + "\n" + j + ". " + xArray[i]; } break; } return retValue; }, createME:function(sTyp,sLabel,sCommand,sClass,sId) { // Anlegen von menuitem, menu oder menupop - fuer bestimmte Typen nicht eingesetzte Parameter werden als 0 uebergeben const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; var m = document.createElementNS(XUL_NS, sTyp); switch (sTyp) { case "menuitem": // this.createME("menuitem","Label des Items","ZuzuweisenderCodeFueroncommand","GewuenschteKlasseDesItems",0) m.setAttribute('label', sLabel); m.setAttribute('oncommand',sCommand); m.setAttribute('class',sClass); break; case "menu": // this.createME("menu","Label des Menues",0,0,"GewuenschteIdDesMenues") m.setAttribute('label', sLabel); m.setAttribute('id', sId); break; case "menupopup": //this.createME("menupopup",0,0,0,"GewuenschteIdDesMenupopups"); m.setAttribute('id', sId); break; } return m; }, openAtGithub:function(e,sScript) { if (e.button==1){ // Mittelklick - Seite auf GitHub oeffnen (funktionier nur, wenn Ordner- und bereinigter Dateiname [ohne Erweiterung] uebereinstimmen): var sUrl="https://github.com/ardiman/userChrome.js/tree/master/"+this.cleanFileName(sScript); openWebLinkIn(sUrl, 'tab'); } if (e.button==2){ // Rechtsklick - Suche auf GitHub starten (funktioniert nur, wenn der Dateiname im Code hinterlegt ist): e.preventDefault(); var sUrl="https://github.com/search?langOverride=&language=&q="+sScript+"&repo=&start_value=1&type=Code"; openWebLinkIn(sUrl, 'tab'); } }, cleanFileName:function(sName) { sName=sName.toLowerCase(); /* Das folgende Array enthaelt regulaere Ausdruecke, um ungueltige Zeichenfolgen entfernen: /Datei-Erweiterungen am Ende/, /"ucjs_" am Anfang/, /"_"gefolgtVonZahlUndDanachBeliebigenZeichen/ / "_fx"gefolgtVonZahl(en)/, /"-" oder "+" oder "."/, /"_v"gefolgtVonZahlen */ var regs=[/\.uc\.js$/,/\.uc\.xul$/,/^ucjs_/,/_\d.+/,/_fx\d+/,/[-+\.]/g,/_v\d+/]; for (var i = 0; i < regs.length; i++) { sName=sName.replace(regs[i],""); } return sName; } }; uProfMenu.init();
-
Neee...ich meinte Büssen damit, weil laut seinem Screenshot alle Icons verrutscht sind etc. :wink:
Schweres -moz-binding-Leiden? -
Schweres -moz-binding-Leiden?
Dann hätte er gar keine Icons im Menü mehr, aber unmöglich ist es nicht.
Darum habe ich ihm ja auch meinen aktuellen Code gepostet. -
Also, in der Zwischenzeit hatte ich mit FX Nightly 680a1 meine Antworten gefertigt.
Die sind scheinbar nicht raus.
Bin nun mit meinem Hauptprofil 66.03 unterwegs.
Da nutze ich noch die alte Version vom Script mit den entsprechenden Codes. Da funktioniert alles. -
Die sind scheinbar nicht raus.
Nur fertigen reicht nicht, du musst sie dann auch noch abschicken :wink: -