Danke für eure Bemühungen. Wenn ihr mein oben verlinktes Github-Issue bei Aris anschaut und die folgenden Beiträge auf meinen zitierten Beitrag zu dem Problem hier in diesem Forum, wird klar, das im Fx 134 aus der Download-Button Funktion der Event-Handler entfernt wurde (oder so ähnlich, sorry für den Kauderwelsch eines Nur-Bastlers). Der soll durch den Zusatzcode ersetzt werden. Für Nutzer, die einen anderen Skript-Loader benutzen, scheint das zu funktionieren (siehe nochmal das Github-Issue, hier aber nicht.
addonbar.us.js funktioniert nicht mehr
-
bege -
25. Januar 2025 um 21:37 -
Unerledigt
-
-
Das Problem ist aber damit auch nicht gelöst.
Danke, aber da kann ich meine Skriptversion auch behalten. Das neue Skript von Aris weicht ziemlich stark von meiner Version ab. Bei Aris kommt jetzt z. B. die ID addonbar_v nur noch im neuen Zusatzcode vor. Irgendwie scheint mir, als wird hier auf etwas Bezug genommen, was es nicht mehr gibt.
-
Sollte jetzt für den Download-Button wieder passen. Die anderen nicht funktionierenden Buttons schaue ich mir später an.
Bitte mal testen...
JavaScript
Alles anzeigen// Add-on Bar script for Firefox 126+ by Aris // // no 'close' button // 'toggle' toolbar with 'Ctr + /' on Windows/Linux or 'Cmd + /' on macOS // no 'Add-on Bar' entry in toolbar context menu // // option: smaller buttons / reduced toolbar button height // // flexible spaces on add-on bar behave like on old Firefox versions // [!] Fix for WebExtensions with own windows by 黒仪大螃蟹 (for 1-N scripts) // [!] 27.01.2025 Fix FF 134+ (DonloadButton) by BrokenHeart💔 (function() { if (!window.gBrowser){ return; } var appversion = parseInt(Services.appinfo.version); var compact_buttons = false; // reduced toolbar height and smaller buttons var AddAddonbar = { init: function() { if (location != 'chrome://browser/content/browser.xhtml') return; /* blank tab workaround */ try { if(gBrowser.selectedBrowser.getAttribute('blank')) gBrowser.selectedBrowser.removeAttribute('blank'); } catch(e) {} try { Services.prefs.getDefaultBranch('browser.addonbar.').setBoolPref('enabled',true); } catch(e) {} var addonbar_label = 'Add-on Bar'; var compact_buttons_code = ''; if(compact_buttons) compact_buttons_code = ` #addonbar toolbarbutton .toolbarbutton-icon { padding: 0 !important; width: 16px !important; height: 16px !important; } #addonbar .toolbarbutton-badge-stack { padding: 0 !important; margin: 0 !important; width: 16px !important; min-width: 16px !important; height: 16px !important; min-height: 16px !important; } #addonbar toolbarbutton .toolbarbutton-badge { margin-top: 0px !important; font-size: 5pt !important; min-width: unset !important; min-height: unset !important; margin-inline-start: 0px !important; margin-inline-end: 0px !important; } #addonbar .toolbaritem-combined-buttons { margin-inline: 0px !important; } #addonbar toolbarbutton { padding: 0 !important; } `; // style sheet Components.classes['@mozilla.org/content/style-sheet-service;1'].getService(Components.interfaces.nsIStyleSheetService).loadAndRegisterSheet( Services.io.newURI('data:text/css;charset=utf-8,' + encodeURIComponent(` #addonbar toolbarpaletteitem[place=toolbar][id^=wrapper-customizableui-special-spring], #addonbar toolbarspring { -moz-box-flex: 1 !important; min-width: unset !important; width: unset !important; max-width: unset !important; } #main-window[customizing] #addonbar { outline: 1px dashed !important; outline-offset: -2px !important; } #addonbar { border-top: 1px solid var(--sidebar-border-color,rgba(0,0,0,0.1)) !important; background-color: var(--toolbar-bgcolor); background-image: var(--toolbar-bgimage); -moz-window-dragging: no-drag !important; } :root[lwtheme] #addonbar { background: var(--lwt-accent-color) !important; } :root[lwtheme][lwtheme-image='true'] #addonbar { background: var(--lwt-header-image) !important; background-position: 0vw 50vh !important; } /* autohide add-on bar in fullscreen mode */ /*#main-window[sizemode='fullscreen']:not([inDOMFullscreen='true']) #addonbar { visibility: visible !important; display: block !important; min-height: 1px !important; height: 1px !important; max-height: 1px !important; } #main-window[sizemode='fullscreen']:not([inDOMFullscreen='true']) #addonbar:hover { min-height: 24px !important; height: 24px !important; max-height: 24px !important; }*/ #unified-extensions-button[hidden]{ visibility: visible !important; display: flex !important; } `+compact_buttons_code+` `), null, null), Components.classes['@mozilla.org/content/style-sheet-service;1'].getService(Components.interfaces.nsIStyleSheetService).AGENT_SHEET ); // toolbar try { if(document.getElementById('addonbar') == null) { var tb_addonbar = document.createXULElement('toolbar'); tb_addonbar.setAttribute('id','addonbar'); tb_addonbar.setAttribute('collapsed', 'false'); tb_addonbar.setAttribute('toolbarname', addonbar_label); tb_addonbar.setAttribute('defaultset','spring,spring'); tb_addonbar.setAttribute('customizable','true'); tb_addonbar.setAttribute('mode','icons'); tb_addonbar.setAttribute('iconsize','small'); tb_addonbar.setAttribute('context','toolbar-context-menu'); tb_addonbar.setAttribute('lockiconsize','true'); tb_addonbar.setAttribute('class','toolbar-primary chromeclass-toolbar browser-toolbar customization-target'); document.getElementById('browser').parentNode.appendChild(tb_addonbar); //tb_addonbar.insertBefore(document.querySelector('#statuspanel'),tb_addonbar.firstChild); CustomizableUI.registerArea('addonbar', {legacy: true}); setTimeout(function(){ CustomizableUI.registerArea('addonbar', {legacy: true}); },2000); CustomizableUI.registerToolbarNode(tb_addonbar); // 'Ctr + /' on Windows/Linux or 'Cmd + /' on macOS to toggle add-on bar var key = document.createXULElement('key'); key.id = 'key_toggleAddonBar'; key.setAttribute('key', '/'); key.setAttribute('modifiers', 'accel'); key.addEventListener("command", () => {var newAddonBar = document.getElementById('addonbar'); setToolbarVisibility(newAddonBar, newAddonBar.collapsed); Services.prefs.getBranch('browser.addonbar.').setBoolPref('enabled',!newAddonBar.collapsed);} ); document.getElementById('mainKeyset').appendChild(key); try { setToolbarVisibility(document.getElementById('addonbar'), Services.prefs.getBranch('browser.addonbar.').getBoolPref('enabled')); } catch(e) {} } } catch(e) {} try { setToolbarVisibility(document.getElementById('addonbar'), Services.prefs.getBranch('browser.addonbar.').getBoolPref('enabled')); } catch(e) {} } } /* initialization delay workaround */ //document.addEventListener('DOMContentLoaded', AddAddonbar.init(), false); /* Use the below code instead of the one above this line, if issues occur */ if (!window.gBrowser){ return; } setTimeout(function(){ AddAddonbar.init(); addonBarEvents(); },1000); function addonBarEvents() { for (const child of document.getElementById('addonbar').children) { if( child["id"] == "downloads-button" ) { document.getElementById('downloads-button').addEventListener('mousedown', function(event) { DownloadsIndicatorView.onCommand(event); }); } } } })();
-
BrokenHeart: In Zeile 153 steht noch key.setAttribute('oncommand',…. Beachte das jüngste Update von addonbar.uc.js.
-
Bei Aris kommt jetzt z. B. die ID addonbar_v nur noch im neuen Zusatzcode vor. Irgendwie scheint mir, als wird hier auf etwas Bezug genommen, was es nicht mehr gibt.
addonbar_v ist die ID für die vertikale Addonbar. Aris hat einfach den Code 1:1 übernommen, und zwar auch in das Skript für die vertikale Leiste.
-
In Zeile 153 steht noch key.setAttribute('oncommand',…. Beachte das jüngste Update von addonbar.uc.js.
Danke, ich hab's übernommen .
Interessant wäre es gewesen, wenn du auch mitgeteilt hättest, ob der Button bei dir mit dieser Anpassung funktioniert. Das Problem ist ja nicht nur auf die 'Add-on Bar' von Aris beschränkt, sondern tritt in jeder Zusatzleiste außerhalb von 'navigator-toolbox' auf, z.B. in den vielen Statusleisten, die hier auch im Umlauf sind.
Ich werde daher auch sicher nicht jede Änderung von Aris wieder hier einpflegen, sondern würde eher eine Skript schreiben, welches man zusätzlich ausführen oder in sein Skript einbauen kann und welches eben das Problem auch für die anderen betroffenen Buttons in allen Leisten behebt.
-
Interessant wäre es gewesen, wenn du auch mitgeteilt hättest, ob der Button bei dir mit dieser Anpassung funktioniert.
Hier funktioniert es leider nicht mit dem Button.
-
Hier funktioniert es leider nicht mit dem Button.
Danke fürs Testen
Hier funktioniert es mit dem Skript, sowohl in FF134 als auch in FF136.
Teste bitte nochmal:
JavaScript
Alles anzeigen// Add-on Bar script for Firefox 126+ by Aris // // no 'close' button // 'toggle' toolbar with 'Ctr + /' on Windows/Linux or 'Cmd + /' on macOS // no 'Add-on Bar' entry in toolbar context menu // // option: smaller buttons / reduced toolbar button height // // flexible spaces on add-on bar behave like on old Firefox versions // [!] Fix for WebExtensions with own windows by 黒仪大螃蟹 (for 1-N scripts) // [!] 27.01.2025 Fix FF 134+ (DonloadButton) by BrokenHeart💔 (function() { if (!window.gBrowser){ return; } var appversion = parseInt(Services.appinfo.version); var compact_buttons = false; // reduced toolbar height and smaller buttons var AddAddonbar = { init: function() { if (location != 'chrome://browser/content/browser.xhtml') return; /* blank tab workaround */ try { if(gBrowser.selectedBrowser.getAttribute('blank')) gBrowser.selectedBrowser.removeAttribute('blank'); } catch(e) {} try { Services.prefs.getDefaultBranch('browser.addonbar.').setBoolPref('enabled',true); } catch(e) {} var addonbar_label = 'Add-on Bar'; var compact_buttons_code = ''; if(compact_buttons) compact_buttons_code = ` #addonbar toolbarbutton .toolbarbutton-icon { padding: 0 !important; width: 16px !important; height: 16px !important; } #addonbar .toolbarbutton-badge-stack { padding: 0 !important; margin: 0 !important; width: 16px !important; min-width: 16px !important; height: 16px !important; min-height: 16px !important; } #addonbar toolbarbutton .toolbarbutton-badge { margin-top: 0px !important; font-size: 5pt !important; min-width: unset !important; min-height: unset !important; margin-inline-start: 0px !important; margin-inline-end: 0px !important; } #addonbar .toolbaritem-combined-buttons { margin-inline: 0px !important; } #addonbar toolbarbutton { padding: 0 !important; } `; // style sheet Components.classes['@mozilla.org/content/style-sheet-service;1'].getService(Components.interfaces.nsIStyleSheetService).loadAndRegisterSheet( Services.io.newURI('data:text/css;charset=utf-8,' + encodeURIComponent(` #addonbar toolbarpaletteitem[place=toolbar][id^=wrapper-customizableui-special-spring], #addonbar toolbarspring { -moz-box-flex: 1 !important; min-width: unset !important; width: unset !important; max-width: unset !important; } #main-window[customizing] #addonbar { outline: 1px dashed !important; outline-offset: -2px !important; } #addonbar { border-top: 1px solid var(--sidebar-border-color,rgba(0,0,0,0.1)) !important; background-color: var(--toolbar-bgcolor); background-image: var(--toolbar-bgimage); -moz-window-dragging: no-drag !important; } :root[lwtheme] #addonbar { background: var(--lwt-accent-color) !important; } :root[lwtheme][lwtheme-image='true'] #addonbar { background: var(--lwt-header-image) !important; background-position: 0vw 50vh !important; } /* autohide add-on bar in fullscreen mode */ /*#main-window[sizemode='fullscreen']:not([inDOMFullscreen='true']) #addonbar { visibility: visible !important; display: block !important; min-height: 1px !important; height: 1px !important; max-height: 1px !important; } #main-window[sizemode='fullscreen']:not([inDOMFullscreen='true']) #addonbar:hover { min-height: 24px !important; height: 24px !important; max-height: 24px !important; }*/ #unified-extensions-button[hidden]{ visibility: visible !important; display: flex !important; } `+compact_buttons_code+` `), null, null), Components.classes['@mozilla.org/content/style-sheet-service;1'].getService(Components.interfaces.nsIStyleSheetService).AGENT_SHEET ); // toolbar try { if(document.getElementById('addonbar') == null) { var tb_addonbar = document.createXULElement('toolbar'); tb_addonbar.setAttribute('id','addonbar'); tb_addonbar.setAttribute('collapsed', 'false'); tb_addonbar.setAttribute('toolbarname', addonbar_label); tb_addonbar.setAttribute('defaultset','spring,spring'); tb_addonbar.setAttribute('customizable','true'); tb_addonbar.setAttribute('mode','icons'); tb_addonbar.setAttribute('iconsize','small'); tb_addonbar.setAttribute('context','toolbar-context-menu'); tb_addonbar.setAttribute('lockiconsize','true'); tb_addonbar.setAttribute('class','toolbar-primary chromeclass-toolbar browser-toolbar customization-target'); document.getElementById('browser').parentNode.appendChild(tb_addonbar); //tb_addonbar.insertBefore(document.querySelector('#statuspanel'),tb_addonbar.firstChild); CustomizableUI.registerArea('addonbar', {legacy: true}); setTimeout(function(){ CustomizableUI.registerArea('addonbar', {legacy: true}); },2000); CustomizableUI.registerToolbarNode(tb_addonbar); // 'Ctr + /' on Windows/Linux or 'Cmd + /' on macOS to toggle add-on bar var key = document.createXULElement('key'); key.id = 'key_toggleAddonBar'; key.setAttribute('key', '/'); key.setAttribute('modifiers', 'accel'); key.addEventListener("command", () => {var newAddonBar = document.getElementById('addonbar'); setToolbarVisibility(newAddonBar, newAddonBar.collapsed); Services.prefs.getBranch('browser.addonbar.').setBoolPref('enabled',!newAddonBar.collapsed);} ); document.getElementById('mainKeyset').appendChild(key); try { setToolbarVisibility(document.getElementById('addonbar'), Services.prefs.getBranch('browser.addonbar.').getBoolPref('enabled')); } catch(e) {} } } catch(e) {} try { setToolbarVisibility(document.getElementById('addonbar'), Services.prefs.getBranch('browser.addonbar.').getBoolPref('enabled')); } catch(e) {} } } /* initialization delay workaround */ //document.addEventListener('DOMContentLoaded', AddAddonbar.init(), false); /* Use the below code instead of the one above this line, if issues occur */ if (!window.gBrowser){ return; } document.addEventListener('DOMContentLoaded', AddAddonbar.init(), false); setTimeout(function(){ addonBarEvents(); },0); function addonBarEvents() { for (const child of document.getElementById('addonbar').children) { if( child["id"] == "downloads-button" ) { document.getElementById('downloads-button').addEventListener('mousedown', function(event) { DownloadsIndicatorView.onCommand(event); }); } } } })();
-
-
welches man zusätzlich ausführen oder in sein Skript einbauen kann
Hallo BrokenHeart ..
Nur so ein Gedanke.
Ich weiß nicht ob dir das hilft, aber ich nutze hier ein viel kürzeres Skript für diese Leiste unten.
JavaScript
Alles anzeigen// Author @aborix + @BrokenHeart //1x parentNode. entfernen Zeile 17 ab Fx 119 //https://www.camp-firefox.de/forum/thema/112673-userchrome-js-scripte-f%C3%BCr-den-fuchs-diskussion/?postID=1234811#post1234811 (function() { if (location.href !== 'chrome://browser/content/browser.xhtml') return; var tb = document.createXULElement('toolbar'); tb.id = 'new-toolbar'; tb.setAttribute('customizable', true); tb.setAttribute('mode', 'icons'); tb.setAttribute("context","toolbar-context-menu"); var vbox = document.createXULElement('vbox'); document.getElementById('navigator-toolbox').parentNode.insertBefore( vbox, null); vbox.style.backgroundColor = ''; vbox.appendChild(tb); CustomizableUI.registerArea('new-toolbar', {legacy: true}); CustomizableUI.registerToolbarNode(tb); })();
Damit funktioniert der Downloadbutton allerdings auch nicht, aber evl. lässt sich das (einfacher) anpassen
-
Damit funktioniert es
Mit dem aus Beitrag Nr. 23 nicht.
Ebenfalls danke fürs Testen.
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...
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...
-
werde nur ein eigenständiges Skript (oder eine einzige Funktion) für die restlichen Buttons zur Verfügung stellen
Das wäre natürlich ideal.
Ebenfalls danke fürs Testen
Gerne doch
-