Dauert noch, deshalb:
Ich habe V 1.10 aus Beitrag #242 mit dem Button kopiert, in Notepad++ eingefügt und als Profil_V110.uc.js abgespeichert.
Anschließend habe ich in Zeile 21 den Tooltip Text geändert, in Zeile 31 mein Icon eingetragen und in Zeile 47 das Profil.
Danach neu gespeichert, FF über Skript Mittelklick neu gestartet.
Der Button ist vorhanden aber keine Reaktion bei Klick.
Hier meine Datei:
CSS
// JavaScript Document
// QuickProfilesChangesButton.uc.js
// Source code https://www.camp-firefox.de/forum/thema/136664/?postID=1233148#post1233148
// Mit wichtiger Änderung von Horstmann!
// Version 1.10 from August 12, 2023
(function() {
if (location.href !== 'chrome://browser/content/browser.xhtml') return;
try {
CustomizableUI.createWidget({
id: 'profileschange-button',
type: 'custom',
defaultArea: CustomizableUI.AREA_NAVBAR,
onBuild: function(aDocument) {
let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
var props = {
id: 'profileschange-button',
class: 'toolbarbutton-1 chromeclass-toolbar-additional',
removable: 'true',
label: 'Profil zusätzlich starten',
accesskey: '', // Wer möchte kann hier z.B. 'C' eintragen, dann kann per "Alt + C" das Skript ausgeführt werden
tooltiptext: 'Profil NeuTest starten',
};
for (var p in props)
toolbaritem.setAttribute(p, props[p]);
return toolbaritem;
}
});
} catch(e) { };
let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons')); // Pfad zum Profilordner und gleich in den entsprechenden Unterordner
let ButtonIcon = "ProfilZusatz1.png"; // Name & Dateiendung des anzuzeigenden Symbols!
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(`
#profileschange-button { list-style-image: url("${ProfilePath}/${ButtonIcon}") }
#profileschange-button.toolbarbutton-1.chromeclass-toolbar-additional image.toolbarbutton-icon {
width: 30px !important;
height: 30px !important;
}
`), null, null);
sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
document.getElementById('profileschange-button').addEventListener( "click", onClick );
function onClick(event) {
if (event.button != 0){
return;
}
let file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
let arguments = ["-no-remote", "-P", "NeuTest", "-foreground"]; // Profil wird ausgewählt Hier "XXX" den gewünschten Profilnamen eintragen
// let arguments = ["-no-remote", "-P"]; // Wer lieber den Profilmanager aufrufen möchte,nutzt diese Zeile!
file.initWithPath("C:\\Program Files\\Mozilla Firefox\\firefox.exe"); // Pfad zur Firefox-Installation
// file.initWithPath("/Applications/Firefox.app/Contents/MacOS/firefox"); // Pfad zur Firefox-Installation, Dateipfad für Mac User
let process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
process.init(file);
process.run(false, arguments, arguments.length); // Profil wird bestätigt
}
})();
Alles anzeigen
Eigentlich sollte dabei kein Fehler entstanden sein. Aber ich hab halt keine Ahnung.
Ist das bzgl. Konsole richtig?