Beiträge von Mira_Belle
-
-
OK, dann ist die Anfrage nicht nur im falschen Thread, sondern auch noch im falschen Forum!
Er will ja die Darstellung einer Page verändern!
-
Wenn ich das richtig in Erinnerung habe, entweder alle oder keines!
Nur das Favicon von Google zu entfernen, wird wohl nicht gehen.
-
Auf vielfachen Wunsch einer einzelnen Person habe ich dieses Skript auch mal überarbeitet.

harff182 Schau mal.
JavaScript
Alles anzeigen// Button > Firefox beenden // angepasst für Fx 138 by Mira_Belle /* ----------------------------------------------------------------------------------- */ /* Zu beachten ist, dass die Grafiken sich im richtigen Ordner befinden müssen */ /* %appdata%\Mozilla\Firefox\Profiles\"Profilname"\chrome\icons */ /* ----------------------------------------------------------------------------------- */ (function() { try { ChromeUtils.importESModule("resource:///modules/CustomizableUI.sys.mjs"); CustomizableUI.createWidget({ id: "fp-quit", defaultArea: CustomizableUI.AREA_NAVBAR, removable: true, label: "Beenden", tooltiptext: "Beenden", }); } catch (e) { Components.utils.reportError(e); }; document.getElementById('fp-quit').addEventListener( "click", onClick ); function onClick(event) { goQuitApplication(event); } // Pfad zum Profilordner let ProfilePath = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/"); // Pfad in den entsprechenden Unterordner let IconPath = '/chrome/icons/'; // Name & Dateiendung des anzuzeigenden Symbols! let ButtonIcon = "quit.svg"; // Erstelle ein img-Element, um zu überprüfen, ob die Grafik geladen werden kann let img = new Image(); img.src = "file:" + ProfilePath + IconPath + ButtonIcon; img.onload = function() { // Wenn die Grafik geladen werden kann, setze das listStyleImage document.getElementById('fp-quit').style.listStyleImage = 'url("' + ("file:" + ProfilePath + IconPath + ButtonIcon) + '")'; document.getElementById('fp-quit').style.fill = '#ff0000'; // Hier wird die Iconfarbe direkt gesetzt }; img.onerror = function() { // Wenn die Grafik nicht geladen werden kann, verwende das Fallback-Icon document.getElementById('fp-quit').style.listStyleImage = 'url("chrome://global/skin/icons/warning.svg")'; document.getElementById('fp-quit').style.fill = 'red'; // Hier wird die Iconfarbe direkt gesetzt }; })(); -
So weit so gut, mit welchem Script für eine vertikale Toolbar läuft das Script, mit dem ↓ läuft es hier nicht?

Nur ein Versuch

Die Datei heißt ja irgendwas mit V, nehme ich an.
Setze doch einfach mal 0-"Skriptname" davor und teste dann noch mal.ODER, versuche doch mal dieses Skript aus.
BeitragSkript VerticalToolbar.uc.js funktioniert in neu erstellten Profilen nicht mehr richtig
Das folgende Skript funktioniert nicht mehr richtig - allerdings nur in neuen Profilen. In bestehenden Profilen, egal ob Release oder Nightly, läuft es einwandfrei.
Kann das jemand bestätigen? Problem tritt hier auf zwei Rechnern mit Win11Pro auf. Wäre toll, wenn das wieder gangbar gemacht werden könnte...
Danke schon mal vorab.
(Quelltext, 108 Zeilen)
Ergänzung: Eigentlich wird die Toolbar korrekt erzeugt und auch der Button zum Ein-/Ausblenden ist vorhanden. Allerdings ist die Toolbar …
grisu20996. Mai 2025 um 22:58 -
Oh, bei mir hieß das Skript für diesen Test einfach # Statusleiste.js.
Könnte tatsächlich mit der Bezeichnung zusammenhängen.
Werde ich sogleich mal ausprobieren.
Also _Statusleiste.uc.js ja?
Nachtrag!
Is' ja'n Ding!
Der Fehler ist gefunden
Es ist in der Tat der Skriptname.
Frage zu den Zeilen 6-7: Müssen die Profile wirklich in %APPDATA% liegen, oder können die auch auf anderen Laufwerken liegen?
Natürlich nicht! Wenn Du mit der Anpassung von Pfadangeben vertraut bist,
kannst Du "Deine" Profile, sowie "Deine" Grafiken ablegen, wo Du willst!Ich habe das nur so gemacht, weil es halt einfach sein soll.
Gibt ja genug Anwender, die solche Skripte einfach so nutzen wie sie sind,
weil sie eben mit JavaScript so gar nichts am Hut haben. -
Machst du vielleicht auch den Fehler, den ich auch oft mache? Den Text sofort abschicken, anstatt ihn sich erst einmal in der Vorschau anzusehen?
¯\_(ツ)_/¯
-
Nö, style.fill.

Danke, ist korrigiert. Wo bin ich denn mit meinen Gedanken?
Sollte wohl besser mal eine Pause machen. -
-
Achja, ich Schussel.
Habe das Skript vor diese Korrektur hier reingestellt.
Danke 2002Andreas -
Hallo Mira.
Ich musste obiges ändern zu:
.style.fill = '#ffe10f';
damit das eigene Icon gelb wurde.

Ach Du heilige Sch......!
Da ist mir irgendwie was durcheinander geraden.
Natürlich muss es .style.fille = '#ffe10f'; heißen
-
geldhuegel Gerade getestet.
Skript "installiert" für die "Statusleiste", Firefox neu gestartet und da is' sie.
Symbolleisten anpassen angeklickt und den Buton "Quicklink about:about"
in die "neue" Statusleiste gezogen.
Tab "Firefox anpassen" schließen und Firefox neu gestartet.
Leiste ist da, Button auch, mit Symbol, und er funktioniert einwandfrei.
Kann das noch jemand anderes testen, bitte. -
Road-Runner Sollte gar kein Problem sein!
In Zeile 40 einfach "restart.png" anstatt "restart.svg".
Und in Zeile 48 ein // davor setzten oder die Zeile ganz löschen,
wobei ich persönlich ehe erstere Variante nutzen würde.
Zu beachten ist auch, dass die Grafik im richtigen Ordner sein muss

%appdata%\Mozilla\Firefox\Profiles\"Profilname"\chrome\icons

Das mit dem "richtigen Pfad" werd eich wohl auch noch irgendwie als Hinweis in die Skripte packen.
-
Neue, von mir angepasste Version.
JavaScript
Alles anzeigen// JavaScript Document // QuickLinkButton-about:about.uc.js // Source file https://www.camp-firefox.de/forum/thema/135613/?postID=1213791#post1213791 // Source file https://www.camp-firefox.de/forum/thema/139289/?postID=1271890#post1271890 /* ----------------------------------------------------------------------------------- */ /* Zu beachten ist, dass die Grafiken sich im richtigen Ordner befinden müssen */ /* %appdata%\Mozilla\Firefox\Profiles\"Profilname"\chrome\icons */ /* ----------------------------------------------------------------------------------- */ (function() { if (location.href !== 'chrome://browser/content/browser.xhtml') return; try { CustomizableUI.createWidget({ id: 'link-button-about', type: 'custom', defaultArea: CustomizableUI.AREA_NAVBAR, onBuild: function(aDocument) { let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton'); let props = { id: 'link-button-about', class: 'toolbarbutton-1 chromeclass-toolbar-additional', removable: 'true', label: 'Quicklink: about:about', tooltiptext: 'Quicklink:\nabout:about', }; for (var p in props) { toolbaritem.setAttribute(p, props[p]); } return toolbaritem; } }); } catch(e) {}; document.getElementById('link-button-about').addEventListener('click', event => { if (event.button === 0) { openTrustedLinkIn("about:about", "tab") } }); // Pfad zum Profilordner let ProfilePath = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/"); // Pfad in den entsprechenden Unterordner let IconPath = '/chrome/icons/'; // Name & Dateiendung des anzuzeigenden Symbols! let ButtonIcon = "firefox.svg"; // Erstelle ein img-Element, um zu überprüfen, ob die Grafik geladen werden kann let img = new Image(); img.src = "file:" + ProfilePath + IconPath + ButtonIcon; img.onload = function() { // Wenn die Grafik geladen werden kann, setze das listStyleImage document.getElementById('link-button-about').style.listStyleImage = 'url("' + ("file:" + ProfilePath + IconPath + ButtonIcon) + '")'; document.getElementById('link-button-about').style.color = '#f1b508'; // Hier wird die Iconfarbe direkt gesetzt }; img.onerror = function() { // Wenn die Grafik nicht geladen werden kann, verwende das Fallback-Icon document.getElementById('link-button-about').style.listStyleImage = 'url("chrome://global/skin/icons/warning.svg")'; document.getElementById('link-button-about').style.color = 'red'; // Hier wird die Iconfarbe direkt gesetzt }; })(); -
Nachtrag

Wenn jemand die Fallbacklösung im Skript haben möchte, muss nur die Zeilen ab
// Pfad zum Profilordner bis })(); komplett mit diesem Code austauschen.JavaScript
Alles anzeigen// Pfad zum Profilordner let ProfilePath = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/"); // Pfad in den entsprechenden Unterordner let IconPath = '/chrome/icons/'; // Name & Dateiendung des anzuzeigenden Symbols! let ButtonIcon = "sync.svg"; // Erstelle ein img-Element, um zu überprüfen, ob die Grafik geladen werden kann let img = new Image(); img.src = "file:" + ProfilePath + IconPath + ButtonIcon; img.onload = function() { // Wenn die Grafik geladen werden kann, setze das listStyleImage document.getElementById('addons-update-button').style.listStyleImage = 'url("' + ("file:" + ProfilePath + IconPath + ButtonIcon) + '")'; document.getElementById('addons-update-button').style.fill = '#ffe10f'; // Hier wird die Iconfarbe direkt gesetzt }; img.onerror = function() { // Wenn die Grafik nicht geladen werden kann, verwende das Fallback-Icon document.getElementById('addons-update-button').style.listStyleImage = 'url("chrome://global/skin/icons/warning.svg")'; document.getElementById('addons-update-button').style.fill = 'red'; // Hier wird die Iconfarbe direkt gesetzt }; -
Ach, jetzt verstehe ich!!
Nein, aber mir ist da wirklich ein kleiner Fauxpas unterlaufen.Zeile 64 muss // rechte Maus Neustart und
Zeile 68 muss // linke Maus Neustart mit Löschung des Start-Caches lauten.Wird so gleich korrigiert.
Danke.
-
Warum?
Habe ich mit Absicht so gemacht!
Da ich den Neustart fast immer mit der linken Maustaste auslöse,
es soll dann auch der Cache gelöscht werden.
Oder spricht etwas dagegen? -
Es geistern hier onBoard ja einige Versionen dieses Skriptes herum.
Ich habe mich mal diesem angenommen und es fit gemacht.JavaScript
Alles anzeigen// Restart_Firefox.uc.js // RestartFirefoxButtonM.uc.js // v. 0.8 // Source file https://www.camp-firefox.de/forum/thema/126132/?postID=1093563#post1093563 // Source file https://www.camp-firefox.de/forum/thema/139338/?postID=1271880#post1271880 /* ----------------------------------------------------------------------------------- */ /* Zu beachten ist, dass die Grafiken sich im richtigen Ordner befinden müssen */ /* %appdata%\Mozilla\Firefox\Profiles\"Profilname"\chrome\icons */ /* ----------------------------------------------------------------------------------- */ // Linksklick if (event.button == 0) // Mittelklick if (event.button == 1) // Rechtsklick if (event.button == 2) (function() { if (location.href !== 'chrome://browser/content/browser.xhtml') return; try { CustomizableUI.createWidget({ id: 'restart-button2a', type: 'custom', defaultArea: CustomizableUI.AREA_NAVBAR, onBuild: function(aDocument) { var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton'); let props = { id: 'restart-button2a', class: 'toolbarbutton-1 chromeclass-toolbar-additional', label: 'Neustart', tooltiptext: 'Neustart (inkl. SkriptCache Löschen)', // Hier wird die Hintergrundfarbe und die Iconfarbe direkt gesetzt //style: 'background-color: #FF5733; color: white;' //style: 'color: #f60000;', }; for (let p in props) toolbaritem.setAttribute(p, props[p]); // Pfad zum Profilordner let ProfilePath = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/"); // Pfad in den entsprechenden Unterordner let IconPath = '/chrome/icons/'; // Name & Dateiendung des anzuzeigenden Symbols! let ButtonIcon = "restart.svg"; // Erstelle ein img-Element, um zu überprüfen, ob die Grafik geladen werden kann let img = new Image(); img.src = "file:" + ProfilePath + IconPath + ButtonIcon; img.onload = function() { // Wenn die Grafik geladen werden kann, setze das listStyleImage toolbaritem.style.listStyleImage = 'url("' + ("file:" + ProfilePath + IconPath + ButtonIcon) + '")'; toolbaritem.style.fill = 'red'; // Hier wird die Iconfarbe direkt gesetzt }; img.onerror = function() { // Wenn die Grafik nicht geladen werden kann, verwende das Fallback-Icon toolbaritem.style.listStyleImage = 'url("chrome://browser/skin/fxa/avatar-empty.svg")'; toolbaritem.style.fill = 'red'; // Hier wird die Iconfarbe direkt gesetzt }; return toolbaritem; } }); } catch(e) { }; document.getElementById('restart-button2a').addEventListener('click', event => { // rechte Maus Neustart if (event.button == 2) { Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); } // linke Maus Neustart mit Löschung des Start-Caches if (event.button == 0) { event.preventDefault(); Services.appinfo.invalidateCachesOnRestart(); Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); } // Mittelklick if (event.button == 1) { // event.preventDefault(); // Services.appinfo.invalidateCachesOnRestart(); // Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); openTrustedLinkIn("about:config", "tab"); } }); let sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService); let uri = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent(` #restart-button2a.toolbarbutton-1.chromeclass-toolbar-additional image.toolbarbutton-icon { width: 32px !important; height: 32px !important; } `), null, null); sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET); })(); -
Und hier eine neue Version!
JavaScript
Alles anzeigen// Addons-UpDate-Check.uc.js // Source file: https://www.camp-firefox.de/forum/thema/135814/?postID=1263412#post1263412 /* ----------------------------------------------------------------------------------- */ /* Zu beachten ist, dass die Grafiken sich im richtigen Ordner befinden müssen */ /* %appdata%\Mozilla\Firefox\Profiles\"Profilname"\chrome\icons */ /* ----------------------------------------------------------------------------------- */ (function () { if (!window.gBrowser) return; try { CustomizableUI.createWidget({ id: "addons-update-button", defaultArea: CustomizableUI.AREA_NAVBAR, label: "Add-ons Update", tooltiptext: "Add-ons aktualisieren", onCommand: onCommand, }); } catch(e) { }; function onCommand(event) { event.target.ownerGlobal.openTrustedLinkIn('about:addons', 'tab'); addEventListener('pageshow', function onPageshow(event) { let document = event.target; if (document.URL != 'about:addons') return; removeEventListener('pageshow', onPageshow); document.querySelector('addon-page-options panel-item[action="view-recent-updates"]').click(); document.querySelector('addon-page-options panel-item[action="check-for-updates"]').click(); content.setTimeout(function() { let categories = document.getElementById('categories'); categories.querySelector('button[viewid="addons://updates/recent"]').click(); categories.querySelector('button[viewid="addons://updates/available"]').click(); }, 1500); }); }; // Pfad zum Profilordner let ProfilePath = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/"); // Pfad in den entsprechenden Unterordner let IconPath = '/chrome/icons/'; // Name & Dateiendung des anzuzeigenden Symbols! let ButtonIcon = "sync.svg"; // Die Grafik wird geladen document.getElementById('addons-update-button').style.listStyleImage = 'url("' + ("file:" + ProfilePath + IconPath + ButtonIcon) + '")'; document.getElementById('addons-update-button').style.fill = '#ffe10f'; // Hier wird die Iconfarbe direkt gesetzt })(); -
Eine lokale .html-Datei. OK.
Eingebunden wird irgendwas von einer externen Seite?
Muss dann der Code dafür nicht in die userContent.css, oder darüber eingebunden werden?
Ist nur so eine Überlegung, wirklich wissen tu’ ich das auch nicht.