So schnell wurden noch nie funktionierende Add-ons geschrieben, getestet, bereitgestellt und verwendet.
Fehlt nur noch der Hinweis am Beginn der Scripte:
// Autor(en): Softwareschmiede der DCFG (Die Camp-Firefox Gurus)...
Gruß Harry
So schnell wurden noch nie funktionierende Add-ons geschrieben, getestet, bereitgestellt und verwendet.
Fehlt nur noch der Hinweis am Beginn der Scripte:
// Autor(en): Softwareschmiede der DCFG (Die Camp-Firefox Gurus)...
Gruß Harry
Just for Fun:
Ich habe im Script für die userrChrome.css den Bereich der Button-Grafik "onCreated: function(aNode) { .... return aNode; }" gelöscht.
Dann im CSS ein Sonderzeichen erzeugt:
/* Die Grafik im Quelltext gelöscht und hier durch ein Sonderzeichen ersetzt
*/
#ucjs-register-userChrome::after {
color: white !important;
content: "\21bb" !important;
font-size: 28px !important;
margin-left: -26px !important;
margin-right: 2px !important;
}
Das klappt auch, und Sonderzeichen gibt es ja jede Menge, auch bunte Bildchen... Vielleicht könnte man das ja auch gleich im Script machen?
Gruß Harry
PS: Den ersten Teil gelöscht, war über... "\1f6a7" ist auch ein gutes Bildchen...
sehr gut gemacht...herzlichen Dank dafür :klasse:
Gern geschehen... :wink:
Der erste Button für die Datei...der zweite für die Vorschau.
Hier werden 2 andere Buttons angezeigt..
[attachment=0]Unbenannt.PNG[/attachment]
Ich nutze den Code von Andreas:
// cssLive.uc.js
(function() {
if (location != 'chrome://browser/content/browser.xul') {
return;
}
/*** OPTIONEN START *******************************************************/
var cssLiveOptions = {
/* Falls sich die Testdatei in einem Unterverzeichnis von "chrome"
befindet, bitte hier zwischen Anführungszeichen eintragen, ansonsten
nur die Anführungszeichen */
subdir: 'css',
/* Name der Testdatei */
file: 'Test.css'
};
/*** OPTIONEN ENDE ********************************************************/
var buttonPath = '';
var testFile = Services.dirsvc.get('UChrm', Ci.nsIFile);
if( cssLiveOptions.subdir != '' ) {
testFile.append( cssLiveOptions.subdir );
buttonPath += cssLiveOptions.subdir + "/";
}
testFile.append( cssLiveOptions.file );
buttonPath += cssLiveOptions.file;
var buttonTxt_1 = buttonPath + " aufrufen";
var buttonTxt_2 = buttonPath + " ausführen";
var errorTxt = "Die Datei \n" + testFile.path + "\n existiert nicht.";
Components.utils.import("resource:///modules/CustomizableUI.jsm");
try {
CustomizableUI.createWidget({
id: "fp-get-css-file",
defaultArea: CustomizableUI.AREA_NAVBAR,
removable: true,
label: buttonTxt_1,
tooltiptext: buttonTxt_1,
onClick: function() {
if( testFile.exists() ) {
testFile.launch();
} else {
alert( errorTxt );
}
},
onCreated: function(aNode) {
aNode.style.listStyleImage = '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=)';
return aNode;
}
});
} catch (e) {
Components.utils.reportError(e);
};
try {
CustomizableUI.createWidget({
id: "fp-register-css-file",
defaultArea: CustomizableUI.AREA_NAVBAR,
removable: true,
label: buttonTxt_2,
tooltiptext: buttonTxt_2,
onClick: function() {
if( testFile.exists() ) {
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 );
let fileURL = Services.io.getProtocolHandler( 'file' ).QueryInterface( Ci.nsIFileProtocolHandler ).getURLSpecFromFile( testFile );
let uri = ios.newURI( fileURL , null , null );
sss.loadAndRegisterSheet( uri , sss.AGENT_SHEET );
} else {
alert( errorTxt );
}
},
onCreated: function(aNode) {
aNode.style.listStyleImage = 'url(data:image/gif;base64,R0lGODlhEAAQAPcAAAQCVISChMTCtOTizNTSxERCRAQCZJSW1MzGzNTW1Ozq7CwqdKyqlMzKxERCjMTCxNzavLy6vMzKzPz67HRypCQiJJyahAQCdOTe1CQinLy65Pz2/PT23NTSzNzW3Ly6tExGnMTGxMS+xMzK1JSWpAQCXMTGvOzmzAQCbMTC1Nza1DQ2dKyqnNTOxExOfOTezLy+vMzOzPz+7Hx+rDQyNKSehAQCfCwqlPz+/NzWzMzGxAD/AOQA2C8A6iQAEgAAAACAAAAAAAAAAAAAAAACAAAAAAAAAAAAAADMAkPpACYSAAAAAKAVCC+LACQ/AAB3AADQhADq7QASEgAAAACwTkPqACYSAAAAAOgACAcAACgACgAAAACwnADqjAASPwAAd/8CBP8AAP8AAAAAAABwAADqAAASAAAAADB6QwSBAAA/OgB3AIQSXAGSAAE/UAF3ABDUcugdABITbwB3AHQAZ40AADQAcnYAAMwIYfsCABIAbQAAAPo4X5m1jDknN3cAdlQASLoA7z8AnAAB1f4sAP/pAP8SAP8AABIAB3UAAD8AAHcAAEWEAHXtAD8SAHcAAABOAAAAEABQKAAAAACwAENDACYmAAAAAAD+AEP/ACb/AAD/AHA4AGbqAD8SAHcAADQAAAAAAAAAAMAAAAQANOoBiBIAuQAAo29l/ogm/zQ0/3Z2/wA4XwDqjCQSNwAAdgBPJQAgAAA0AAB2APhcJULqACYSAAAAAAAAoAABuwAAUAAAAGVl/yYm/zQ0/3Z2/wAAAAEAAAAAAAAAAKAYZB0A6xMAEncAAADnRgAlgyQ0TAB2AAAARAAA6wAAEgAAAKRgdwPrUCQSTwAAAEgieAEm6yQ0EgB2AA/U5wBsJQBPNAAAdh7gHQB37QBPEgAAAHQA2QEB/yQA/wAAfy1c+ADq7AASEgAAAEgAAAEBACQAAAAAAABD5wAmJQA0NAB2dg4BAAAAAAAAAAAAAAAAPAAA7wAAnAAB1Ui4GAHtFCQSKAAAAFP6AQCZLQA5SAB3ACH5BAAAAAAALAAAAAAQABAABwi3AAsEGEiwYEEaARQk8MCQ4UIPCxNsEJhABIwIGE08wAhDxAMFFB/gGCkjhkgcEwh8DEkBQIkSAkzMcPlhZYAEDwjguLCCgw4cIGrgBBnAwwMRAzKggNBCgwsVIWxWzDkCBQkcNxhIeCCV6wMZBlDgKIEhqgiiUx+8OIBiAYsOXoka5dogBQoHJhDEpejxQYgTNizk8NrVK4EcH6JyPRuyb9/FXIluUEC5smXKOArQKMC5s2fPFQICADs=)';
return aNode;
}
});
} catch (e) {
Components.utils.reportError(e);
}
})();
Alles anzeigen
Hier werden 2 andere Buttons angezeigt..
Dann hast du den Code evtl. doppelt eingetragen...denn:
Ich nutze den Code von Andreas:
zeigt einwandfrei die beiden Icons aus Beitrag Nr. 80 an.
Die bei dir angezeigten Icons stammen aus dem Code in Beitrag Nr. 78.
Du hast mal wieder recht....
Jetzt alles schick..
Ich habe eine Frage...
Wenn ich einen beliebigen Ordner auf meinem Computer öffnen möchte, nicht den Skript "Test.css", was muss dann geändert werden?
Das müsste dann so aussehen:
(function () {
if (location != 'chrome://browser/content/browser.xul')
return;
try {
/* ***************************************************************
Pfad zum auszuführenden Programm ODER Ordner definieren:
var APPpath = 'C:\\Windows\\notepad.exe';
var APPpath = 'C:\\Windows\\';
*****************************************************************
Label und Tooltip definieren:
var label = "Notepad";
var tooltiptext = "Notepad starten";
***************************************************************** */
var APPpath = 'C:\\Windows\\notepad.exe';
var label = 'Notepad';
var tooltiptext = 'Notepad starten';
Components.utils.import("resource:///modules/CustomizableUI.jsm");
CustomizableUI.createWidget({
id: "ucjs-" + label + "-button",
defaultArea: CustomizableUI.AREA_NAVBAR,
removable: true,
label: label,
tooltiptext: tooltiptext,
onClick: function () {
var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
file.initWithPath(APPpath);
file.launch();
},
onCreated: function (aNode) {
var ICOpath = APPpath.replace(/\\/g, "//");
aNode.style.listStyleImage = 'url("moz-icon:file:///' + ICOpath + '?size=16")'
return aNode;
}
});
} catch (e) {
Components.utils.reportError(e);
};
})();
Alles anzeigen
Tanni Bestens!
Vielen Dank!
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?
Kann man dies auch für die Test.uc.js verwenden?
Dafür bedarf es wohl ein komplett neues Script denke ich mal.
Angefragt hatte ich das hier ja schon mal:
Ok, A.. Dann warten wir mal ab, ob sich was tut.