Script für einzelne Datei  [GELÖST]

Schrauberecke: Hier geht es um optische und funktionelle Veränderungen (ohne Themes oder Personas) von Firefox oder von Webseiten per CSS-Codes oder JavaScript.
Benutzeravatar
2002Andreas
Moderator
Beiträge: 36618
Registriert: Fr, 04. Jul 2008 19:25
Wohnort: Niedersachsen

Script für einzelne Datei

#1

Beitrag von 2002Andreas Themen-Starter » Sa, 13. Jan 2018 12:29

Hallo @all..

ich habe eine Bitte.

Kann mir bitte jemand ein Script erstellen mit dem ich im Ordner CSS, der sich im Ordner chrome befindet, gleich die Datei: Test.css per Klick auf einen Button aufrufen kann?

Wie immer herzlichen Dank für jegliche Hilfe :klasse:
Mit freundlichem Gruß
Andreas
Mein System    Meine Add-ons

Benutzeravatar
Endor
Senior-Mitglied
Beiträge: 11740
Registriert: Fr, 20. Apr 2007 15:41
Wohnort: Irgendwo ganz weit im Süden und doch mitten in den Bergen
Kontaktdaten:

Re: Script für einzelne Datei

#2

Beitrag von Endor » Sa, 13. Jan 2018 12:56

Soll die direkt im Fuchs geöffnet werden, oder wie soll sich das verhalten?
Mfg.
Endor
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0.4
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:58.0) Gecko/Firefox/58.0b14
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/Firefox/59.0

OS: Windows 7 H. P. 64 Bit Versions Info Stand 05.01.2018
Kein Support per PN. Fragen bitte im Forum stellen!

Benutzeravatar
2002Andreas
Moderator
Beiträge: 36618
Registriert: Fr, 04. Jul 2008 19:25
Wohnort: Niedersachsen

Re: Script für einzelne Datei

#3

Beitrag von 2002Andreas Themen-Starter » Sa, 13. Jan 2018 13:03

Hallo Endor...

vorweg danke für deine Hilfe :klasse:

Oben im Fx einen Button, der mir per Klick gleich die Datei Test.css öffnet.
So wie wir das ja auch für z.B. die userChrome.css und andere Dateien haben.

Mit diesem Script öffnet sich die Datei wenn sie im Ordner chrome ist:

Code: Alles auswählen


    (function () {

       if (location != 'chrome://browser/content/browser.xul') return;

       const buttonId = 'Test.css-button';
       const buttonLabel = 'Test.css';
       const buttonTooltiptext = 'Test.css';
       const buttonIcon = '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==)';
       
       function buttonFunction() {
		   
		             var dir = Services.dirsvc.get('UChrm', Ci.nsIFile);
dir.append('Test.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;      
          };      
       };
       
    }) ();
Die Datei ist aber im Unterordner CSS im Ordner chrome, das bekomme ich nicht hin :oops:

Ich denke mal das muss man in dieser Zeile dann anpassen :-??

var dir = Services.dirsvc.get('UChrm', Ci.nsIFile);
Mit freundlichem Gruß
Andreas
Mein System    Meine Add-ons

Tanni
Mitglied
Beiträge: 58
Registriert: Do, 19. Aug 2004 10:34

Re: Script für einzelne Datei

#4

Beitrag von Tanni » Sa, 13. Jan 2018 15:59

Hier mal mein Versuch. :-)

Code: Alles auswählen

(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);
	};

})();

EffPeh
Senior-Mitglied
Beiträge: 809
Registriert: Mi, 04. Okt 2017 10:22

Re: Script für einzelne Datei

#5

Beitrag von EffPeh » Sa, 13. Jan 2018 16:00

Bitteschön, Andreas... :)

Code: Alles auswählen

(function() {

try {
	Components.utils.import("resource:///modules/CustomizableUI.jsm");
	CustomizableUI.createWidget({
		id: "fp-open-css",
		defaultArea: CustomizableUI.AREA_NAVBAR,
		removable: true,
		label: "open-css",
		tooltiptext: "open-css",
		onClick: function() {
			var ffdir = Components.classes['@mozilla.org/file/directory_service;1'].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile).path;
			var CSSpath = ffdir + '\\chrome\\css\\ffc-nav-bar.css';
			var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
			file.initWithPath( CSSpath );
			file.launch();
		}
	});
} catch (e) {
	Components.utils.reportError(e);
};

})();
Button-Grafik kannst du selbst hinzufügen. Denke ich... :wink:
Windows10 | FF 57.0 (64-Bit)

Benutzeravatar
2002Andreas
Moderator
Beiträge: 36618
Registriert: Fr, 04. Jul 2008 19:25
Wohnort: Niedersachsen

Re: Script für einzelne Datei  [GELÖST]

#6

Beitrag von 2002Andreas Themen-Starter » Sa, 13. Jan 2018 16:18

Hallo ihr beiden..

ganz herzlichen Dank dafür :klasse:
Tanni hat geschrieben:
Sa, 13. Jan 2018 15:59
Hier mal mein Versuch.
Der hat perfekt funktioniert :D
EffPeh hat geschrieben:
Sa, 13. Jan 2018 16:00
Bitteschön, Andreas..
Auch dir herzlichen Dank dafür :D
Mit freundlichem Gruß
Andreas
Mein System    Meine Add-ons

EffPeh
Senior-Mitglied
Beiträge: 809
Registriert: Mi, 04. Okt 2017 10:22

Re: Script für einzelne Datei

#7

Beitrag von EffPeh » Sa, 13. Jan 2018 16:23

Bitte, bitte... :)
Nimm` das von Tanni. Ist kürzer und hat auch schon eine Grafik... :wink:
Windows10 | FF 57.0 (64-Bit)

Tanni
Mitglied
Beiträge: 58
Registriert: Do, 19. Aug 2004 10:34

Re: Script für einzelne Datei

#8

Beitrag von Tanni » Sa, 13. Jan 2018 16:34

@Andreas
gerne doch :-)

@EffPeh
Eyh, da waren wir ja fast gleichzeitig am Script posten. ;-)
Kürzer ist meine Version auch nicht wirklich, da ich noch die Verschachtelung drin habe. ;-)

EffPeh
Senior-Mitglied
Beiträge: 809
Registriert: Mi, 04. Okt 2017 10:22

Re: Script für einzelne Datei

#9

Beitrag von EffPeh » Sa, 13. Jan 2018 17:26

Tanni hat geschrieben:
Sa, 13. Jan 2018 16:34
@EffPeh
Eyh, da waren wir ja fast gleichzeitig am Script posten. ;-)
Kürzer ist meine Version auch nicht wirklich, da ich noch die Verschachtelung drin habe. ;-)
Yep. :)
Doch, doch. Es wirkt eleganter und übersichtlicher. Und ich habe es so noch nicht gekannt... :wink:
Windows10 | FF 57.0 (64-Bit)

Benutzeravatar
milupo
Senior-Mitglied
Beiträge: 4078
Registriert: Fr, 27. Okt 2006 22:25

Re: Script für einzelne Datei

#10

Beitrag von milupo » Sa, 13. Jan 2018 19:34

@2002Andreas: Wäre es nicht besser den Ordner CSS per Schaltfläche zu öffnen und dann die passende CSS-Datei auszuwählen?
Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org, u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django und LibreOffice

Benutzeravatar
2002Andreas
Moderator
Beiträge: 36618
Registriert: Fr, 04. Jul 2008 19:25
Wohnort: Niedersachsen

Re: Script für einzelne Datei

#11

Beitrag von 2002Andreas Themen-Starter » Sa, 13. Jan 2018 19:41

Hallo @milupo..

ich habe den Button nur in meinem Testprofil.
Wenn ich z.B. jetzt einen css Code testen will klicke ich nur auf den Button, und die Datei Test.css wird geöffnet....Text eintragen..speichern...Neustart...wundern :wink:

Zum Testen für uc.js Scripte nutze ich ebenfalls einen Button in der Menüleiste zum öffnen der Datei: Test.uc.js

Ich erspare mir also jeweils einen Klick um an die jeweilige Datei zu kommen. :wink:

Mir ging es nur darum wie ich im Unterordner CSS die Datei ansprechen kann, wenn sie direkt im Ordner chrome läge wäre es klar für mich, so hatte ich es ja auch in meinem obigen Code gepostet, bzw. so habe ich es für die Test.uc.js Datei hier, die ja direkt im Ordner chrome liegt.
Mit freundlichem Gruß
Andreas
Mein System    Meine Add-ons

Benutzeravatar
milupo
Senior-Mitglied
Beiträge: 4078
Registriert: Fr, 27. Okt 2006 22:25

Re: Script für einzelne Datei

#12

Beitrag von milupo » Sa, 13. Jan 2018 20:04

2002Andreas hat geschrieben:
Sa, 13. Jan 2018 19:41
Hallo @milupo..

ich habe den Button nur in meinem Testprofil.
Wenn ich z.B. jetzt einen css Code testen will klicke ich nur auf den Button, und die Datei Test.css wird geöffnet....Text eintragen..speichern...Neustart...wundern :wink:
Ah, gewissermaßen als Zugriff auf eine Dateivorlage.
Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org, u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django und LibreOffice

Benutzeravatar
2002Andreas
Moderator
Beiträge: 36618
Registriert: Fr, 04. Jul 2008 19:25
Wohnort: Niedersachsen

Re: Script für einzelne Datei

#13

Beitrag von 2002Andreas Themen-Starter » Sa, 13. Jan 2018 20:06

Genauuuuu :wink:

1. Test.css
2. Test.uc.js
Zwischenablage01.jpg
Mit freundlichem Gruß
Andreas
Mein System    Meine Add-ons

EffPeh
Senior-Mitglied
Beiträge: 809
Registriert: Mi, 04. Okt 2017 10:22

Re: Script für einzelne Datei

#14

Beitrag von EffPeh » Sa, 13. Jan 2018 20:09

Dann habe ich hier noch einen zweiten Button für dich, Andreas. :)
Ein Klick darauf bindet die editierte Test.css erneut ein und erspart dir somit den Neustart. :wink:

Code: Alles auswählen

(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);
}

})();
Button-Grafik musst du noch anpassen. Ich habe, faul wie ich bin, einfach die von Tanni übernommen. :)
Windows10 | FF 57.0 (64-Bit)

Benutzeravatar
milupo
Senior-Mitglied
Beiträge: 4078
Registriert: Fr, 27. Okt 2006 22:25

Re: Script für einzelne Datei

#15

Beitrag von milupo » Sa, 13. Jan 2018 20:13

2002Andreas hat geschrieben:
Sa, 13. Jan 2018 20:06
Genauuuuu :wink:
Ein Sachse würde sagen: "Das is derwäächn geene schlechte Idee." :-D
Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org, u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django und LibreOffice

Antworten

Wer ist online?

Mitglieder in diesem Forum: Brause 13 und 4 Gäste