- Firefox-Version
- 139
- Betriebssystem
- Win 10
Guten Abend
Ich hatte es schon einige Zeit im Forum verfolgt das mit Version 138 etliche Skripte einer Anpassung bedürfen um weiter ihren Dienst zu tun. Nachdem ich jetzt sehr lange Glück hatte und viele Skripte viele Updates überlebt haben, ist es nun leider mal wieder an der Zeit sich damit zu beschäftigen.
Ich hatte gesehen das einige hier in einem Thread ihre Problemfälle gepostet hatten und im besten Fall Updates erhielten.
Ein erstes Skript (Restart) welches ich mir aus diesem Thread von Mira_Belle geliehen habe funktioniert, bis auf das Icon welches ich gern tauschen würde aber leider nicht hinbekomme:
JavaScript
// 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);
})();
Alles anzeigen
Road-Runner fragt in dem Thread auch, aber irgendwie passen die in der Antwort von Mira_Belle gegebenen Zeilen nicht.