Damit wird ein Button erstellt, womit man die Datei: Test.css wenn sie sich um Ordner CSS befindet, gleich öffnen kann:Code Alles anzeigen(function() { if (location != 'chrome://browser/content/browser.xul') return; try { Components.utils.import("resource:///modules/CustomizableUI.jsm"); CustomizableUI.createWidget({ id: "button-testcss", defaultArea: CustomizableUI.AREA_NAVBAR, removable: true, label: "Test.ccs", tooltiptext: "Test.css", onClick: function() { var dir = Services.dirsvc.get('UChrm', Ci.nsIFile); dir.append('CSS'); dir.append('Test.css'); dir.launch(); }, onCreated: function(aNode) { aNode.style.listStyleImage = '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==)'; return aNode; } }); } catch (e) { Components.utils.reportError(e); }; })();
Damit wird ein Button erstellt, der nach einem Eintrag in obiger Datei eine Vorschau zeigt:
Code Alles anzeigen(function() { try { CustomizableUI.createWidget({ id: "fp-register-test", defaultArea: CustomizableUI.AREA_NAVBAR, removable: true, label: "register-test", tooltiptext: "register-test", onClick: function() { var CI = Components.interfaces; var CC = Components.classes; let sss = CC["@mozilla.org/content/style-sheet-service;1"].getService( CI.nsIStyleSheetService ); let ios = CC["@mozilla.org/network/io-service;1"].getService( CI.nsIIOService ); var file = Services.dirsvc.get('UChrm', Ci.nsIFile); file.append('css'); file.append('Test.css'); let fileURL = Services.io.getProtocolHandler( 'file' ).QueryInterface( Ci.nsIFileProtocolHandler ).getURLSpecFromFile( file ); let uri = ios.newURI( fileURL , null , null ); sss.loadAndRegisterSheet( uri , sss.AGENT_SHEET ); }, onCreated: function(aNode) { aNode.style.listStyleImage = '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==)'; return aNode; } }); } catch (e) { Components.utils.reportError(e); } })();
Und damit wird eine Vorschau angezeigt wenn der Code direkt in die userChrome.css eingetragen wurde:
Code Alles anzeigen(function() { if (location != 'chrome://browser/content/browser.xul') return; try { CustomizableUI.createWidget({ id: "ucjs-register-userChrome", defaultArea: CustomizableUI.AREA_NAVBAR, removable: true, label: "register-userChrome", tooltiptext: "userChrome.css erneut registrieren", onClick: function() { var CI = Components.interfaces; var CC = Components.classes; let sss = CC["@mozilla.org/content/style-sheet-service;1"].getService( CI.nsIStyleSheetService ); let ios = CC["@mozilla.org/network/io-service;1"].getService( CI.nsIIOService ); var file = Services.dirsvc.get('UChrm', Ci.nsIFile); //file.append('css'); /* Unterordner für Anpassungen an andere Dateien */ file.append('userChrome.css'); let fileURL = Services.io.getProtocolHandler( 'file' ).QueryInterface( Ci.nsIFileProtocolHandler ).getURLSpecFromFile( file ); let uri = ios.newURI( fileURL , null , null ); sss.loadAndRegisterSheet( uri , sss.AGENT_SHEET ); }, onCreated: function(aNode) { aNode.style.listStyleImage = '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==)'; return aNode; } }); } catch (e) { Components.utils.reportError(e); } })();
PS:
Es sind also sogar 3 Scripte in diesem Thread vorhanden, und nicht nur 2 wie ich weiter oben geschrieben hatte, sorry dafür.
Kann man dies auch für die Test.uc.js verwenden?