1. Nachrichten
  2. Forum
    1. Unerledigte Themen
    2. Forenregeln
  3. Spenden
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. camp-firefox.de
  2. BrokenHeart

Beiträge von BrokenHeart

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • BrokenHeart
    • 7. Februar 2025 um 14:45

    Es scheint dann doch wieder einmal Timing-Probleme zu geben. Da muss wohl ein anderer Ansatz (Observer?) her, der das Vorhandensein bestimmter Elemente "garantiert".

    Zitat von 2002Andreas

    Fx 135...nichts zu sehen:

    Danke 2002Andreas , dass du es jetzt auch mal getestet hast :thumbup:.

    In der Konsole sollte zumindest ein Log-Eintrag vorhanden sein. Wäre hilfreich, wenn du mir sagst, ob da das XUlElement steht oder null.

    Code
    --------------------------mainPopupSet: [object XULElement]
  • userChrome.js Scripte für den Fuchs (Diskussion)

    • BrokenHeart
    • 7. Februar 2025 um 12:19
    Zitat von Endor

    Schaltfläche war mal kurz da und seit dem nicht mehr aufgetaucht.

    Zitat von milupo

    Auch ich hatte nichts geändert, bis das Problem auftauchte.

    Ich hatte wie gesagt nichts geändert. :/

    Hier exakt die Version, die bei mir seit Anfang an funktioniert - nur falls es doch Abweichungen zur oben geposteten Version gibt.

    JavaScript
    // ==UserScript==
    // @name           uhr-panelbutton.uc.js
    // @compatibility  Firefox 134
    // @include        main
    // @version        1.0.1
    // ==/UserScript==
    
    (function() {
    	//let mainPopupSet; 
    
    	if (!window.gBrowser)
    		return;
    
    	window.addEventListener(
    		"DOMContentLoaded",
    		() => {
    			setTimeout(function() {
    			uhr.init();
    		},0);
    	},true);
    
    	var uhr = {
    	  urlobj: {
    		MO_Linksklick: {url:"https://uhr.ptb.de/",width:500,height:500},
    	  },
    	  wfthrobber: "https://raw.github.com/ardiman/userChrome.js/master/wetterfuchsbutton/loading51.gif",  // alternativ z.B. wfthrobber: "chrome://global/skin/media/throbber.png",
    	  createBtn: function() {
    	   try {
    		  CustomizableUI.createWidget({
    			 id: 'uhr-toolbarbutton',
    			 type: 'custom',
    			 onBuild: function(aDocument) {
    				var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
    				var attributes = {
    				   id: 'uhr-toolbarbutton',
    				   class: 'toolbarbutton-1 chromeclass-toolbar-additional',
    				   type: 'button',
    				   removable: 'true',
    				   label: 'Uhr Panel',
    				   tooltiptext: 'Aktuelle Uhrzeit',
    				   style: 'list-style-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACrklEQVQ4jX2T3UuTURzHn3+j/6ILrwq88cLoJgpiEYQUwcKErKAXWi+E1dIZrTRQWQQzYZqilWvGpPmyC3OMtnQ02gvao/Lsxbk9e9phY+fTxRNLM/rCFw6ccz7n+4XfUZS/tLL6HdvjN7Ra3TRbPTRbPbS09dM3MIymafx9viEhBLbHbzhxaxanb5OJcJGJcJG30RIjSzq2MZVWq5vXI6P7IUII2i45uTys4lrIM/dth4RWYTltkM4IYhsVxkN5XixUaLkZotc5tBdyu6ufs4NbjCzpLKcNvqxXWCtKUgXTyZIkGC/R517BMVukqSOA1ztDo/Ohdi/dvhz+uEEsK4llJdG8ZLVgruM7kicDIUanE3yIGXSMFDhs6cEwDBqvT0dLBFMV4r8vJpcjJJcjpISkz72CyxMjWZL44wbdvhwHTn0yU7S09XNnKrc3tpDkwmHks+uMTid45oqQLEmiGcmSWmcqatBkW+N2Vz/KwdOveOjViKzpaLpE3akR+pZn2p+i/doEJ6/Os5apouoSVZckcjX8X7c59jzH+U67Cej25cjrVURNEk8VcDjmeOla4t5gjPfjQapSUq6a1kWdhFbBMlgwAZb2R1weVsnuCKSU1OsSKXc5PIvM/GjsiZpkdV3niEPlvv0pSt/AMMd7V5kJbTUge1zImJDfgI1sGddCnqaOAIFAAEXTNFo7BrGNqWxky/sBu1KImiSSLnNhtMKxc/cQQpiz4BmbwNITxOnbJLX1E13U96XIffpAJF3GPi9ptnpYXFzcO429ziEsPUEeejX8X7dJbf1kZb1COiP4rlWZnEtjn5ccvT7+7/+gKIoyOfWOM1eecHEohNO3iftzFffnKo7ZIheHQljaH5m9/yfDMJicesfdrl46bzyg88YD7tufMjPz8U/nXfoFmxjSB7qU4KIAAAAASUVORK5CYII=)'
    				};
    				for (var p in attributes)
    						toolbaritem.setAttribute(p, attributes[p]);
    					
    				toolbaritem.addEventListener('click', event => {
    					if (event.button == 0) { 
    							uhr.openPanel( 'MO_Linksklick', event, 'b' );
    					}
    				});
    				
    				return toolbaritem;
    			 }
    		  });
    	   } catch(e) { };
    	   
    	   var css = '\
    		  #uhr-toolbarbutton .toolbarbutton-icon {max-width: none !important;}\
    	   ';
    		   
    	   var stylesheet = document.createProcessingInstruction('xml-stylesheet', 'type="text/css" href="data:text/css;utf-8,' + encodeURIComponent(css) + '"');
    
    	   document.insertBefore(stylesheet, document.documentElement);
    	   },
    	  init: function() {
    		
    		this.createBtn();
    
    		let panel = document.createXULElement('panel');  
    		panel.id = "uhr-panel";
    		panel.setAttribute('noautohide', "false"); 
    		panel.setAttribute('type', "arrow"); 
    		
    		panel.addEventListener('popuphiding', event => {
    			 uhr.clearPanel();
    		});
    		  
    		panel.addEventListener('mousedown', event => {
    			if (event.button == 1)  
    				 uhr.openUrlFromPanel();
    		});
    		
    		let element = document.getElementById('mainPopupSet');
    	
    		console.log("--------------------------mainPopupSet: " + element);	
    		if(element)	
    			element.appendChild(panel);	
    			
    		let vbox = document.createXULElement('vbox');    
    		panel.appendChild(vbox);
    		
    		let browser = document.createXULElement('browser');  
    		browser.id = "uhr-iframe";
    		browser.setAttribute('type', 'content');     
    		browser.setAttribute('flex', '1'); 
    		browser.setAttribute('remote', 'true');
    		browser.setAttribute('src', this.wfthrobber); 
    		vbox.appendChild(browser);
    		
    	  },
    	  myEventhandler: function (e,toDo) {
    		switch (toDo) {
    		 case "p":
    		  e.preventDefault();
    		  break;
    		 case "s":
    		  e.stopPropagation();
    		  break;
    		 case "b":
    		  e.preventDefault();
    		  e.stopPropagation();
    		  break;
    		}
    	  },
    	  clearPanel: function() {
    		myiframe = document.getElementById("uhr-iframe");
    		myiframe.parentNode.width = 146;
    		myiframe.parentNode.height = 146;
    		myiframe.setAttribute("src",this.wfthrobber);
    	  },
    	  openUrlFromPanel: function() {
    		openWebLinkIn(document.getElementById("uhr-iframe").getAttribute("src"),"tab");
    		document.getElementById("uhr-panel").hidePopup();
    	  },
    	  openPanel: function(bezeichner,e,toDo) {
    		this.myEventhandler(e,toDo);
    		var myiframe = document.getElementById("uhr-iframe");
    		myiframe.parentNode.style.width = this.urlobj[bezeichner]["width"]+'px';
    		myiframe.parentNode.style.height = this.urlobj[bezeichner]["height"]+'px';
    		myiframe.setAttribute("src",this.urlobj[bezeichner]["url"]);
    		var mypanel = document.getElementById("uhr-panel");
    		mypanel.openPopup(document.getElementById("uhr-toolbarbutton"));
    	  },
    	};
    
    })();
    Alles anzeigen
    Zitat von milupo

    Eine Idee: Du hattest ja den Vorschlag mit dem setTimeout-Wert gemacht. Wenn ich so in die Vergangenheit zurückdenke, ist mir, als hätte der setTimeout-Block immer am Ende eines Skripts gestanden. Bei dir steht er am Anfang des Skriptes. Könnte das die Ursache sein?

    Der Code wurde auch vorher, obwohl er ganz hinten stand, als erstes aufgerufen. Vorher steht ja nur eine Objektdefinition 'uhr'. Der Aufruf über uhr.init() startet ja erst die eigentliche Initialisierung des Programms.

    Habe heute nur sporadisch Zeit und werde nur kurz mal immer wieder vorbeischauen...

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • BrokenHeart
    • 7. Februar 2025 um 00:10
    Zitat von milupo

    Hilft nichts.

    Aber es hat doch schon funktioniert, oder? Ich habe am Skript nichts mehr geändert, ein FF-Update hat es in der Zwischenzeit auch nicht gegeben, also müsste der Fehler dann wohl eher wegen einer Änderung an deiner Umgebung auftreten. Vielleicht meldet sich ja (morgen) noch jemand und kann das Problem bestätigen oder eben nicht. :/

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • BrokenHeart
    • 6. Februar 2025 um 23:45

    Dann kann ich dir momentan leider auch nicht helfen. Hier funktioniert das Skript in FF135 (noch).

    Du könntest in Zeile 18 den Wert von setTimeout erhöhen, z.B. zum Test von 0 auf 3000.

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • BrokenHeart
    • 6. Februar 2025 um 22:52
    Zitat von milupo

    Es ist bei mir nicht mehr zu sehen, weder in der Symbolleiste noch im Anpassen-Fenster, sowohl im Nightly als auch in Fx 135.

    Und was sagt die Konsole?

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • BrokenHeart
    • 6. Februar 2025 um 18:50
    Zitat von milupo

    Sprachlich richtig ist: „Spaaaß“, also mit langem aaa. ;) :)

    ;)

    aber ..."Spassss" ist original Stromberg! Schau mal wie viel "Spassss" die haben:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Zitat von 2002Andreas

    Wichtiger wäre der Preis, wenn es wieder angepasst ist ;)

    Zitat von 2002Andreas

    IBM hat damals 600,00DM pro Stunde dafür genommen.

    8|. Hat es dann wenigstens funktioniert?

    Also mein Stundensatz liegt - einen Moment, muss nachschauen - bei 600,00€/h. So ein Zufall...;)

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • BrokenHeart
    • 6. Februar 2025 um 18:08
    Zitat von milupo

    Ich habe das Skript nie benutzt. Was macht es denn eigentlich?

    Zitat von milupo

    In der Symbolleiste sehe ich kein Symbol dafür.

    Ziehe es dir über 'Symbolleiste anpassen...' auf eine Leiste.

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • BrokenHeart
    • 6. Februar 2025 um 17:57
    Zitat von Endor

    Vielen Dank. Funktioniert wieder einwandfrei.
    Große Klasse.

    Gerne :). Im Prinzip handelt es sich bei dem Skript um das leicht abgewandelte "wetterfuchsbutton.uc.js" Skript. Und wenn das hier jetzt läuft, dann sollte folglich das Wetterfuchs-Skript eigentlich auch wieder zu reparieren sein.

    ...

    Mal schauen, was mir Boersenfeger dafür zahlt, damit ich mir das mal anschaue... ^^;)
    (bevor hier Leute ohne Ironie-Detektor aufschlagen: "war nur Spasss")

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • BrokenHeart
    • 6. Februar 2025 um 17:40
    Zitat von Endor

    Ändert aber nichts daran, dass das Script nicht funktioniert.

    Bitte testen:

    JavaScript
    // ==UserScript==
    // @name           uhr-panelbutton.uc.js
    // @compatibility  Firefox 134
    // @include        main
    // @version        1.0.1
    // ==/UserScript==
    
    (function() {
    
    	if (!window.gBrowser)
    		return;
    
    	window.addEventListener(
    		"DOMContentLoaded",
    		() => {
    			setTimeout(function() {
    			uhr.init();
    		},0);
    	},true);
    
    	var uhr = {
    	  urlobj: {
    		MO_Linksklick: {url:"https://uhr.ptb.de/",width:500,height:500},
    	  },
    	  wfthrobber: "https://raw.github.com/ardiman/userChrome.js/master/wetterfuchsbutton/loading51.gif",  // alternativ z.B. wfthrobber: "chrome://global/skin/media/throbber.png",
    	  createBtn: function() {
    	   try {
    		  CustomizableUI.createWidget({
    			 id: 'uhr-toolbarbutton',
    			 type: 'custom',
    			 onBuild: function(aDocument) {
    				var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
    				var attributes = {
    				   id: 'uhr-toolbarbutton',
    				   class: 'toolbarbutton-1 chromeclass-toolbar-additional',
    				   type: 'button',
    				   removable: 'true',
    				   label: 'Uhr Panel',
    				   tooltiptext: 'Aktuelle Uhrzeit',
    				   style: 'list-style-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACrklEQVQ4jX2T3UuTURzHn3+j/6ILrwq88cLoJgpiEYQUwcKErKAXWi+E1dIZrTRQWQQzYZqilWvGpPmyC3OMtnQ02gvao/Lsxbk9e9phY+fTxRNLM/rCFw6ccz7n+4XfUZS/tLL6HdvjN7Ra3TRbPTRbPbS09dM3MIymafx9viEhBLbHbzhxaxanb5OJcJGJcJG30RIjSzq2MZVWq5vXI6P7IUII2i45uTys4lrIM/dth4RWYTltkM4IYhsVxkN5XixUaLkZotc5tBdyu6ufs4NbjCzpLKcNvqxXWCtKUgXTyZIkGC/R517BMVukqSOA1ztDo/Ohdi/dvhz+uEEsK4llJdG8ZLVgruM7kicDIUanE3yIGXSMFDhs6cEwDBqvT0dLBFMV4r8vJpcjJJcjpISkz72CyxMjWZL44wbdvhwHTn0yU7S09XNnKrc3tpDkwmHks+uMTid45oqQLEmiGcmSWmcqatBkW+N2Vz/KwdOveOjViKzpaLpE3akR+pZn2p+i/doEJ6/Os5apouoSVZckcjX8X7c59jzH+U67Cej25cjrVURNEk8VcDjmeOla4t5gjPfjQapSUq6a1kWdhFbBMlgwAZb2R1weVsnuCKSU1OsSKXc5PIvM/GjsiZpkdV3niEPlvv0pSt/AMMd7V5kJbTUge1zImJDfgI1sGddCnqaOAIFAAEXTNFo7BrGNqWxky/sBu1KImiSSLnNhtMKxc/cQQpiz4BmbwNITxOnbJLX1E13U96XIffpAJF3GPi9ptnpYXFzcO429ziEsPUEeejX8X7dJbf1kZb1COiP4rlWZnEtjn5ccvT7+7/+gKIoyOfWOM1eecHEohNO3iftzFffnKo7ZIheHQljaH5m9/yfDMJicesfdrl46bzyg88YD7tufMjPz8U/nXfoFmxjSB7qU4KIAAAAASUVORK5CYII=)'
    				};
    				for (var p in attributes)
    						toolbaritem.setAttribute(p, attributes[p]);
    					
    				toolbaritem.addEventListener('click', event => {
    				if (event.button == 0) { 
    						uhr.openPanel( 'MO_Linksklick', event, 'b' );
    				}
    	  });
    				return toolbaritem;
    			 }
    		  });
    	   } catch(e) { };
    	   
    	   var css = '\
    		  #uhr-toolbarbutton .toolbarbutton-icon {max-width: none !important;}\
    	   ';
    		   
    	   var stylesheet = document.createProcessingInstruction('xml-stylesheet', 'type="text/css" href="data:text/css;utf-8,' + encodeURIComponent(css) + '"');
    
    	   document.insertBefore(stylesheet, document.documentElement);
    	   },
    	  init: function() {
    		
    		this.createBtn();
    
    		let panel = document.createXULElement('panel');  
    		panel.id = "uhr-panel";
    		panel.setAttribute('noautohide', "false"); 
    		panel.setAttribute('type', "arrow"); 
    		
    		panel.addEventListener('popuphiding', event => {
    			 uhr.clearPanel();
    		});
    		  
    		panel.addEventListener('mousedown', event => {
    			if (event.button == 1)  
    				 uhr.openUrlFromPanel();
    		});
    		
    		let element = document.getElementById('mainPopupSet');
    	
    		if(element)	
    			element.appendChild(panel);	
    			
    		let vbox = document.createXULElement('vbox');    
    		panel.appendChild(vbox);
    		
    		let browser = document.createXULElement('browser');  
    		browser.id = "uhr-iframe";
    		browser.setAttribute('type', 'content');     
    		browser.setAttribute('flex', '1'); 
    		browser.setAttribute('remote', 'true');
    		browser.setAttribute('src', this.wfthrobber); 
    		vbox.appendChild(browser);
    		
    	  },
    	  myEventhandler: function (e,toDo) {
    		switch (toDo) {
    		 case "p":
    		  e.preventDefault();
    		  break;
    		 case "s":
    		  e.stopPropagation();
    		  break;
    		 case "b":
    		  e.preventDefault();
    		  e.stopPropagation();
    		  break;
    		}
    	  },
    	  clearPanel: function() {
    		myiframe = document.getElementById("uhr-iframe");
    		myiframe.parentNode.width = 146;
    		myiframe.parentNode.height = 146;
    		myiframe.setAttribute("src",this.wfthrobber);
    	  },
    	  openUrlFromPanel: function() {
    		openWebLinkIn(document.getElementById("uhr-iframe").getAttribute("src"),"tab");
    		document.getElementById("uhr-panel").hidePopup();
    	  },
    	  openPanel: function(bezeichner,e,toDo) {
    		this.myEventhandler(e,toDo);
    		var myiframe = document.getElementById("uhr-iframe");
    		myiframe.parentNode.style.width = this.urlobj[bezeichner]["width"]+'px';
    		myiframe.parentNode.style.height = this.urlobj[bezeichner]["height"]+'px';
    		myiframe.setAttribute("src",this.urlobj[bezeichner]["url"]);
    		var mypanel = document.getElementById("uhr-panel");
    		mypanel.openPopup(document.getElementById("uhr-toolbarbutton"));
    	  },
    	};
    
    })();
    Alles anzeigen
  • Fix: Toolbar-Buttons reagieren nicht mehr ab FF 134

    • BrokenHeart
    • 3. Februar 2025 um 00:11
    Zitat von Mitleser

    Oder als zusätzliche, gut sichtbare Warnung könnte ein alert( "Warning: Toolbar [" + toolbarID + "] unknown! File: 'FixToolbarButtons.uc.js'"); hilfreich sein?

    Hatte ich mir zuerst auch überlegt, aber ich bin eigentlich kein Freund von aufpoppenden Meldungen, die ich quittieren muss. Es passiert bei fehlerhafter Angabe der ID ja nichts, was sich in irgendeiner Weise auf das Gesamtverhalten des Browsers auswirken würde (auch nicht auf die Performance). Der einzige Effekt, der dann eintritt ist, dass die Buttons nicht mehr funktionieren. Und wenn ein Skript nicht mehr läuft, dann sollte man sowieso mal in der Konsole nachschauen, ob da eine Meldung vorliegt. Bleibt natürlich jedem selbst überlassen, die Zeile mit 'console.log' nach deinem Vorschlag anzupassen... :)

    Aber wie gesagt, ich möchte wenigstens den Versuch starten, die Angabe im Skript überflüssig zu machen, also das Skript automatisch nach allen betroffenen Toolbars suchen zu lassen und diese dann automatisch eintragen zu lassen. Aber keine Ahnung, ob das trivial und sicher ist... :/

  • Fix: Toolbar-Buttons reagieren nicht mehr ab FF 134

    • BrokenHeart
    • 2. Februar 2025 um 18:56
    Zitat von Mitleser

    ucjs_unified-extensions-button + 'Verschiebe'-Script funzt leider nicht mehr. :/

    Schau bitte in Zeile 14, ob dort die richtige Toolbar-ID im Array steht. Falls du das nicht korrigiert hast, steht da nämlich jetzt eine andere drin, als vorher ('addonbar' -> 'bottom-toolbar' ).

    Ich werde das Array im Code mal leer lassen, da ja hier zwingend eine vorhandene Toolbar-ID eingetragen werden muss und ich nicht weiß, welche Toolbar genutzt wird. Vielleicht kann man das ohne großen Aufwand auch "programmatisch" lösen...

    Edit: Noch als Hinweis: In der Konsole sollte bei nicht vorhandener Toolbar eine Warnung ausgegeben worden sein.

  • Fix: Toolbar-Buttons reagieren nicht mehr ab FF 134

    • BrokenHeart
    • 29. Januar 2025 um 15:07
    Zitat von BrokenHeart

    Edit: Habe gerade ein Update auf die neuste Nightly gemacht und dann geht der Button wirklich nicht mehr. Liegt aber nicht an dem Skript, da er diesen Fehler auch ohne das Skript zeigt. Müsste man sich mal den Code zum Button genauer anschauen... :/

    Zitat von FuchsFan

    Ich glaube Dir ja schon, aber alle Button, die about-Funktionen aufrufen funktionieren nicht nach dem Muster des Scriptes aus #11.

    Ja, das Skript für den Button funktioniert hier auch nicht mehr in der heutigen Nightly. In der gestrigen Nightly lief es noch. Das ist aber eine andere Baustelle. Vielleicht mal dafür einen eigenen Thread aufmachen.

    So funktioniert dein Skript 'abouttranslations-button.uc.js' auch in der aktuellen Nightly wieder. Auch in einem neuen Fenster. Allerdings nur, wenn man das Startfenster nicht löscht. Aber wie gesagt, ist eine andere Baustelle und hat nichts mit dem Skript zu tun.

    JavaScript
    //  abouttranslations-button.uc.js
      
      (function() {
    
    	if (location != 'chrome://browser/content/browser.xhtml') return;
       
    	try {
    		CustomizableUI.createWidget({
    			id: 'about-translations',
    			type: 'custom',
    			defaultArea: CustomizableUI.AREA_NAVBAR,
    			onBuild: function(aDocument) {
    				let currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");				
    				let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
    				let props = {
    					id: 'about-translations',
    					class: 'toolbarbutton-1 chromeclass-toolbar-additional',
    					label: 'about:translations',
    					tooltiptext: 'about:translations öffnen',
    					style: 'list-style-image: url("file:///C:/FoxIcons2/1140.png")',
    				};
    				for (var p in props)
    					toolbaritem.setAttribute(p, props[p]);
    				
    				toolbaritem.addEventListener('click', function(event) {
    					if (event.button == 0) { 
    						openTrustedLinkIn("about:translations", "tab");
    					};
    				}, true);
    				
    				return toolbaritem;
    			}
    		
    		});
    	} catch(e) { };
    	
    })();
    Alles anzeigen
    Zitat von FuchsFan

    Gibst Du mir mal bitte noch Dein Script für die Addon-Bar.

    Das sind ganz unterschiedliche Skripte, mit denen ich getestet habe. Die 'addonbar' von Aris wurde ja hier gepostet und eine selber angepasste Statusleiste. Aber wie gesagt, hier gehen deine about:xxxx-Skripte auch nicht mehr. Hängt also nicht an den Toolbars bzw. halte ich für sehr unwahrscheinlich.

    -----

    Zitat von Dharkness

    Es betrifft also nur Fx-Interne Button?

    Exakt! FX-interne Buttons in nicht FX-internen Toolbars.

  • Fix: Toolbar-Buttons reagieren nicht mehr ab FF 134

    • BrokenHeart
    • 29. Januar 2025 um 14:22
    Zitat von FuchsFan

    Sorry, ich teste nur in Nightly (immer aktuelle Version). :rolleyes:

    Siehe Screenshot in #13

    Edit: Habe gerade ein Update auf die neuste Nightly gemacht und dann geht der Button wirklich nicht mehr. Liegt aber nicht an dem Skript, da er diesen Fehler auch ohne das Skript zeigt. Müsste man sich mal den Code zum Button genauer anschauen... :/

  • Fix: Toolbar-Buttons reagieren nicht mehr ab FF 134

    • BrokenHeart
    • 29. Januar 2025 um 14:11
    Zitat von FuchsFan

    Leider nicht, denn das folgende Script arbeitet in der Navbar fehlerlos, und funktioniert auch in mehreren Fenstern, wenn das Startfenster geschlossen wurde (das aus #5 nicht). Was müsste also im Script noch geändert werden?

    Funktioniert hier in der FF134.0.2 einwandfrei. Keine Ahnung, was du meinst :/ (Icon ist nicht sichtbar im Screenshot)

    Und in der Nightly auch...



    Zitat von Mitleser

    Läuft, vielen Dank! :) :thumbup:

    Gerne :).

  • Fix: Toolbar-Buttons reagieren nicht mehr ab FF 134

    • BrokenHeart
    • 29. Januar 2025 um 13:36

    Mitleser Habe es jetzt angepasst. Funktioniert dann aber wohl nur in Verbindung mit dem Skript, welches du gepostet hast, da ja auch eine veränderte ID= ucjs_unified-extensions-button benutzt wird.

    Edit: Mist! Das neue Skript vergessen...:sleeping:

    JavaScript
    // 'FixToolbarButtons.uc.js' by BrokenHeart💔   
    //
    // The script adds several button-events to custom-toolbars(XUL), which were created outside the 'navigator-toolbox'. 
    // Firefox: 134+ 
    //
    // 29.01.2025 V0.1  
    
    
    (function() {
    	
    	// ---------------------------------------------
        const toolbarIDs = ['bottom-toolbar', 'addonbar'/*, ... */];   
    	// ---------------------------------------------
    	
    	if (!window.gBrowser)
    		return;
    	
    	if (window.readyState !== "loading") 
    		setTimeout( initToolbarButtonEvents, 500 ); 
        else 
    		window.addEventListener( "DOMContentLoaded", initToolbarButtonEvents );
    	
    	window.addEventListener('aftercustomization', () =>
    		setTimeout(() => initToolbarButtonEvents(), 100 )
    	)
    		
    	function initToolbarButtonEvents() {
    		
    		toolbarIDs.forEach((toolbarID) => {
    			for (const child of document.getElementById(toolbarID).children) {
    				switch(child["id"]) {
    					case "downloads-button":  
    						let dlButton = document.getElementById('downloads-button');
    						dlButton.removeEventListener('mousedown', handleDlButtonEvent);
    						dlButton.addEventListener('mousedown', handleDlButtonEvent);
    					break;
    					case "library-button":  
    						let libButton = document.getElementById('library-button');
    						libButton.removeEventListener('mousedown', handleLibButtonEvent);
    						libButton.addEventListener('mousedown', handleLibButtonEvent);
    					break;
    					case "alltabs-button":  
    						let allTabsButton = document.getElementById('alltabs-button');
    						allTabsButton.removeEventListener('mousedown', handleAllTabsButtonEvent);
    						allTabsButton.addEventListener('mousedown', handleAllTabsButtonEvent);
    					break;
    					case "firefox-view-button":  
    						let viewButton = document.getElementById('firefox-view-button');
    						viewButton.removeEventListener('mousedown', handleViewButtonEvent);
    						viewButton.addEventListener('mousedown', handleViewButtonEvent);
    					break;
    					case "fxa-toolbar-menu-button":  
    						let fxaMenuButton = document.getElementById('fxa-toolbar-menu-button');
    						fxaMenuButton.removeEventListener('mousedown', handleFxaMenuButtonEvent);
    						fxaMenuButton.addEventListener('mousedown', handleFxaMenuButtonEvent);
    					break;
    					case "import-button":  
    						let importButton = document.getElementById('import-button');
    						importButton.removeEventListener('command', handleImportButtonEvent);
    						importButton.addEventListener('command', handleImportButtonEvent);
    					break;
    					case "ucjs_unified-extensions-button":  
    						let extensionsButton = document.getElementById('ucjs_unified-extensions-button');
    						extensionsButton.removeEventListener('command', handleExtensionsButton);
    						extensionsButton.addEventListener('command', handleExtensionsButton);
    					break;
    					
    				}
    			}
    		})
    		
    	}	
    
    	
    	function handleDlButtonEvent(event) { 
    		DownloadsIndicatorView.onCommand(event);
    	}
    	function handleLibButtonEvent(event) {
    		PanelUI.showSubView("appMenu-libraryView", document.getElementById('library-button'), event);
    	}
    	function handleAllTabsButtonEvent(event) {  
    		gTabsPanel.showAllTabsPanel(event, "alltabs-button");
    	}
    	function handleViewButtonEvent(event) { 
    		FirefoxViewHandler.openToolbarMouseEvent(event);
    	}
    	function handleFxaMenuButtonEvent(event) { 
    		gSync.toggleAccountPanel(document.getElementById('fxa-toolbar-menu-button'), event);
    	}
    	function handleImportButtonEvent(event) { 
    		MigrationUtils.showMigrationWizard(window, {
                entrypoint: MigrationUtils.MIGRATION_ENTRYPOINTS.BOOKMARKS_TOOLBAR,
    		});
    	}
    	function handleExtensionsButton(event) { 
    		gUnifiedExtensions.togglePanel(event);
    	}
    	
    })();
    Alles anzeigen
  • Fix: Toolbar-Buttons reagieren nicht mehr ab FF 134

    • BrokenHeart
    • 29. Januar 2025 um 13:16
    Zitat von Mitleser

    Ich hoffe, dass ich das richtig verstanden habe? Hier funktioniert der #unified-extensions-button nicht mehr nach dem Verschieben mit diesem Script:

    Ja hast du ;) :thumbup:. Den unified-extensions-button hatte ich erst mal ausgelassen, da er bei mir ohne ein Extra-Skript nicht über 'Symbolleiste anpassen...' aus der Navbar zu verschieben war. Ich wusste gar nicht, dass es so ein Skript gibt. Werde ich dann auch anpassen, falls das funktioniert.

  • Fix: Toolbar-Buttons reagieren nicht mehr ab FF 134

    • BrokenHeart
    • 29. Januar 2025 um 12:18
    Zitat von FuchsFan

    Danke, das funktioniert mit den von Dir eingetragenen System-Button. Ich musste passen, konnte es nicht fertig bringen, dass auch z.B. about-config-Button, about-translations-Button, usw., starten, wenn sie sich in der Addonbar befinden (Nightly aktuell).

    Der "Fehler" betrifft ja nur bestimmte Buttons, die von Firefox selbst kommen, wie z.B. Download-Button, View-Button u.a., Mozilla hat Änderungen an den EventListenern für diese Buttons vorgenommen, so dass sie außerhalb der Standard-Toolbars nicht mehr funktionieren. Das Skript behebt genau das...

    Zitat von FuchsFan

    Wie müsste so ein Eintrag aussehen?

    Du musst da überhaupt nichts anpassen oder in das Skript eintragen, da diese Buttons weiterhin in allen Toolbars funktionieren. Oder habe ich dich falsch verstanden?

    Zitat von Dharkness

    Dieses Script funktioniert bei mir ohne extra Anpassungen in der #addonbar_v, die ist doch gemeint, oder?

    Genau so ist es! Der Fix betrifft keine selbst erstellten Buttons über UserChrome-Skripte,

    --

    Es kann sein, dass es noch weitere Buttons gibt (geben wird), die ab FF134 (FF136) nicht mehr in eigenen Toolbars funktionieren. Wäre gut, wenn das dann jemand meldet, damit ich dafür einen neuen Listener/Handler erzeugen kann.


    Zum jetzigen Zeitpunkt werden diese sechs Buttons gefixt (siehe Skript):

  • addonbar.us.js funktioniert nicht mehr

    • BrokenHeart
    • 29. Januar 2025 um 07:37
    Zitat von BrokenHeart

    Was ich Speravir schon weiter oben geschrieben hatte: werde nur ein eigenständiges Skript (oder eine einzige Funktion) für die restlichen Buttons zur Verfügung stellen, welches dann in allen Toolbars außerhalb der 'navigator-toolbox' die Funktionalität wiederherstellt, nicht nur bei diesem Skript von Aris.

    Darum geht es jetzt hier weiter:

    Beitrag

    Fix: Toolbar-Buttons reagieren nicht mehr ab FF 134

    Ausgehend von diesen Beitrag:

    addonbar.us.js funktioniert nicht mehr Hier das versprochene Skript, welches die vorherige Funktionalität für alle Buttons wiederherstellt, welche ab FF134 nicht mehr auf einen Mausklick reagiert haben, wenn sie außerhalb des Bereichs der navigator-toolbox verschoben wurden.



    Die bestehenden Toolbars brauchen (sollen!) dafür nicht verändert werden.

    Als einzige Angabe erwartet das Skript in Zeile 11 die ID(s) der genutzten Toolbar(s), welche in dem Array toolbarIDs…
    BrokenHeart
    29. Januar 2025 um 07:36
  • Fix: Toolbar-Buttons reagieren nicht mehr ab FF 134

    • BrokenHeart
    • 29. Januar 2025 um 07:36

    Ausgehend von diesen Beitrag:

    Beitrag

    addonbar.us.js funktioniert nicht mehr

    […]

    Das Problem besteht weiter, obwohl es gerade ein Update für das Skript gab.

    Meine Meldung auf Github ist verwaist. Dort gibt es Lösungsvorschläge, die aber wohl nur mit einem anderen Skriptloader funktionieren. Weiß jemand eine Lösung mit "unserem" Skriptloader, also dem in Endors Github?
    bege
    25. Januar 2025 um 21:37

    Hier das versprochene Skript, welches die vorherige Funktionalität für alle Buttons wiederherstellt, welche ab FF134 nicht mehr auf einen Mausklick reagiert haben, wenn sie außerhalb des Bereichs der navigator-toolbox verschoben wurden.

    Die bestehenden Toolbars brauchen (sollen!) dafür nicht verändert werden.

    Als einzige Angabe erwartet das Skript in Zeile 11 die ID(s) der genutzten Toolbar(s), welche in dem Array toolbarIDs angegeben werden müssen. z.B. :

    const toolbarIDs = ['addonbar'];   
    oder
    const toolbarIDs = ['addonbar', 'bottom_toolbar'/*, ... */] ; 


    Aktuellste Version: 02.02.2025 v0.2

    JavaScript
    // 'FixToolbarButtons.uc.js' by BrokenHeart💔   
    //
    // The script adds several button-events to custom-toolbars(XUL), which were created outside the 'navigator-toolbox'. 
    // Firefox: 134+ 
    //
    // https://www.camp-firefox.de/forum/thema/138875-fix-nicht-mehr-reagierende-buttons-in-per-skript-erzeugten-toolbars/?postID=1264979#post1264979
    //
    // 29.01.2025 v0.1  
    // 02.02.2025 v0.2 | check if the toolbar, listed in the array, really exists.
    
    (function() {
    	
    	// ---------------------------------------------
        const toolbarIDs = [/*'addonbar', ... */];   
    	// ---------------------------------------------
    	
    	if (!window.gBrowser)
    		return;
    	
    	if (window.readyState !== "loading") 
    		setTimeout( initToolbarButtonEvents, 500 ); 
        else 
    		window.addEventListener( "DOMContentLoaded", initToolbarButtonEvents );
    	
    	window.addEventListener('aftercustomization', () =>
    		setTimeout(() => initToolbarButtonEvents(), 100 )
    	)
    		
    	function initToolbarButtonEvents() {
    		toolbarIDs.forEach((toolbarID) => {
    			if((tbid = document.getElementById(toolbarID)) != null ) {
    				for (const child of tbid.children) {
    					switch(child["id"]) {
    						case "downloads-button":  
    							let dlButton = document.getElementById('downloads-button');
    							dlButton.removeEventListener('mousedown', handleDlButtonEvent);
    							dlButton.addEventListener('mousedown', handleDlButtonEvent);
    						break;
    						case "library-button":  
    							let libButton = document.getElementById('library-button');
    							libButton.removeEventListener('mousedown', handleLibButtonEvent);
    							libButton.addEventListener('mousedown', handleLibButtonEvent);
    						break;
    						case "alltabs-button":  
    							let allTabsButton = document.getElementById('alltabs-button');
    							allTabsButton.removeEventListener('mousedown', handleAllTabsButtonEvent);
    							allTabsButton.addEventListener('mousedown', handleAllTabsButtonEvent);
    						break;
    						case "firefox-view-button":  
    							let viewButton = document.getElementById('firefox-view-button');
    							viewButton.removeEventListener('mousedown', handleViewButtonEvent);
    							viewButton.addEventListener('mousedown', handleViewButtonEvent);
    						break;
    						case "fxa-toolbar-menu-button":  
    							let fxaMenuButton = document.getElementById('fxa-toolbar-menu-button');
    							fxaMenuButton.removeEventListener('mousedown', handleFxaMenuButtonEvent);
    							fxaMenuButton.addEventListener('mousedown', handleFxaMenuButtonEvent);
    						break;
    						case "import-button":  
    							let importButton = document.getElementById('import-button');
    							importButton.removeEventListener('command', handleImportButtonEvent);
    							importButton.addEventListener('command', handleImportButtonEvent);
    						break;
    						case "ucjs_unified-extensions-button":  
    							let extensionsButton = document.getElementById('ucjs_unified-extensions-button');
    							extensionsButton.removeEventListener('command', handleExtensionsButton);
    							extensionsButton.addEventListener('command', handleExtensionsButton);
    						break;
    					}
    				}
    			}
    			else {
    				console.log( "Warning: Toolbar [" + toolbarID + "] unknown!");
    			}
    		})
    	}	
    
    	
    	function handleDlButtonEvent(event) { 
    		DownloadsIndicatorView.onCommand(event);
    	}
    	function handleLibButtonEvent(event) {
    		PanelUI.showSubView("appMenu-libraryView", document.getElementById('library-button'), event);
    	}
    	function handleAllTabsButtonEvent(event) {  
    		gTabsPanel.showAllTabsPanel(event, "alltabs-button");
    	}
    	function handleViewButtonEvent(event) { 
    		FirefoxViewHandler.openToolbarMouseEvent(event);
    	}
    	function handleFxaMenuButtonEvent(event) { 
    		gSync.toggleAccountPanel(document.getElementById('fxa-toolbar-menu-button'), event);
    	}
    	function handleImportButtonEvent(event) { 
    		MigrationUtils.showMigrationWizard(window, {
                entrypoint: MigrationUtils.MIGRATION_ENTRYPOINTS.BOOKMARKS_TOOLBAR,
    		});
    	}
    	function handleExtensionsButton(event) { 
    		gUnifiedExtensions.togglePanel(event);
    	}
    
    })();
    Alles anzeigen

    Damit der Button'unified-extensions-button in eine Extra-Toolbar verschoben werden kann, muss folgendes Skript (danke Mitleser) benutzt werden:

    Beitrag

    RE: Fix: Toolbar-Buttons reagieren nicht mehr ab FF 134

    […]

    Ich hoffe, dass ich das richtig verstanden habe? Hier funktioniert der #unified-extensions-button nicht mehr nach dem Verschieben mit diesem Script:

    (Quelltext, 46 Zeilen)

    Mitleser
    29. Januar 2025 um 13:08

    Allerdings funktioniert dieses Verschiebe-Skript nicht in jeder Situation( z.B. Entfernen des Extension-Button aus allen Toolbars + Neustart) wirklich einwandfrei, hier muss eventuell noch eine andere Lösung gefunden werden!

  • addonbar.us.js funktioniert nicht mehr

    • BrokenHeart
    • 28. Januar 2025 um 11:56
    Zitat von 2002Andreas

    Damit funktioniert es :thumbup:

    Mit dem aus Beitrag Nr. 23 nicht.

    Ebenfalls danke fürs Testen.:thumbup:

    Dann hatte ich zu viel im Skript von Aris "wegoptimiert". Wie üblich ein Timing Problem. Ich war der Meinung 1s sollten ausreichen. Aber das schwankt wohl stark von Rechner zu Rechner. Die Lösung in #28 ist eh die korrektere Variante... :)

    Zitat von 2002Andreas

    Ich weiß nicht ob dir das hilft, aber ich nutze hier ein viel kürzeres Skript für diese Leiste unten.

    Ich nutze die Addon-Bar von Aris auch nicht, sondern eine angepasste Statusleiste, in der man genauso Buttons verstauen kann. Im Prinzip ist der Aufbau ja fast überall identisch. Was ich Speravir schon weiter oben geschrieben hatte: werde nur ein eigenständiges Skript (oder eine einzige Funktion) für die restlichen Buttons zur Verfügung stellen, welches dann in allen Toolbars außerhalb der 'navigator-toolbox' die Funktionalität wiederherstellt, nicht nur bei diesem Skript von Aris. Es ging mir hier nur um das prinzipielle Austesten einer Idee... ;)

Unterstütze uns!

Jährlich (2025)

104,5 %

104,5% (679,10 von 650 EUR)

Jetzt spenden
  1. Kontakt
  2. Datenschutz
  3. Impressum
Community-Software: WoltLab Suite™
Mastodon