Es geht um den Button um weiteres Profil zu öffnen .
Dharkness 2002Andreas Endor FuchsFan lenny2 Mitleser
Ich stelle hier 4 Versionen rein, die getestet werden sollen.
Bitte nichts an den Skripts ändern, das ist wichtig
Ihr braucht den Pfad zu den Icons,
d.H. für den Test muss unter chrome der Ordner "icons" vorhanden sein.
Dort müsst Ihr das Symbol, welches sich in der Zip verbirgt, hinkopieren.
Nun zu den Tests.
Es sollte nun bei allen JavaScripts ein Symbol wie dieses " " in der Navbar auftauchen.
Wenn nicht, funktioniert dennoch der Button?
Wenn auf den Button geklickt wird, sollte sich der Profilmanager vom Firefox öffnen.
Wenn nicht, gibt es eine Fehlermeldung in der Konsole?
Den Profilmanager vom Firefox könnt Ihr einfach beenden.
Das wäre dann der Funktionstest gewesen!
Aber,
bitte schaut auch in die Konsole, gibt es da eine Fehlermeldung bezüglich des Skripts?
Bitte einen Screenshot.
So, nun die vier zu testenden Versionen.
// Testversion_1.js
(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');
let profileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/"); // Pfadangabe zum Profilordner
let buttonIcon = "default-browser-red.svg"; // Name & Dateiendung des anzuzeigenden Symbols
toolbaritem.onclick = event => onClick(event);
var props = {
id: 'profileschange-button',
class: 'toolbarbutton-1 chromeclass-toolbar-additional',
removable: 'true',
label: 'Profil zusätzlich starten',
accesskey: '',
tooltiptext: 'Profile Changer',
style: 'list-style-image: url("' + ("file:" + profileDirectory + "/chrome/icons/" + buttonIcon) +'");',
};
for (var p in props)
toolbaritem.setAttribute(p, props[p]);
return toolbaritem;
}
});
} catch(e) { };
function onClick(event) {
if (event.button != 0){
return;
}
let file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
// let arguments = ["-no-remote", "-P", "Testumgebung"]; // Profil wird ausgewählt Hier "XXX" das gewünschte Profil eintragen, z.B. Test
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
// Testversion_1a.js
(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');
let profileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/"); // Pfadangabe zum Profilordner
let buttonIcon = "default-browser-red.svg"; // Name & Dateiendung des anzuzeigenden Symbols
// toolbaritem.onclick = event => onClick(event);
var props = {
id: 'profileschange-button',
class: 'toolbarbutton-1 chromeclass-toolbar-additional',
removable: 'true',
label: 'Profil zusätzlich starten',
accesskey: '',
tooltiptext: 'Profile Changer',
style: 'list-style-image: url("' + ("file:" + profileDirectory + "/chrome/icons/" + buttonIcon) +'");',
};
for (var p in props)
toolbaritem.setAttribute(p, props[p]);
return toolbaritem;
}
});
} catch(e) { };
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", "Standard-Benutzer", "-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
// Testversion_2.js
(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');
let iconDirectory = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons')); // Profilpfad zum Ordner des Symbols
let buttonIcon = "default-browser-red.svg"; // Name & Dateiendung des anzuzeigenden Symbols
toolbaritem.onclick = event => onClick(event);
var props = {
id: 'profileschange-button',
class: 'toolbarbutton-1 chromeclass-toolbar-additional',
removable: 'true',
label: 'Profil zusätzlich starten',
accesskey: '',
tooltiptext: 'Profile Changer',
style: 'list-style-image: url("' + iconDirectory + "/" + buttonIcon + '");',
};
for (var p in props)
toolbaritem.setAttribute(p, props[p]);
return toolbaritem;
}
});
} catch(e) { };
function onClick(event) {
if (event.button != 0){
return;
}
let file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
// let arguments = ["-no-remote", "-P", "Testumgebung"]; // Profil wird ausgewählt Hier "XXX" das gewünschte Profil eintragen, z.B. Test
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
// Testversion_2a.js
(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');
let iconDirectory = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons')); // Profilpfad zum Ordner des Symbols
let buttonIcon = "default-browser-red.svg"; // Name & Dateiendung des anzuzeigenden Symbols. Hier "XXX.xxx" das eigene Symbol inkl. Dateiendung eintragen
// toolbaritem.onclick = event => onClick(event);
var props = {
id: 'profileschange-button',
class: 'toolbarbutton-1 chromeclass-toolbar-additional',
removable: 'true',
label: 'Profil zusätzlich starten',
accesskey: '',
tooltiptext: 'Profile Changer',
style: 'list-style-image: url("' + iconDirectory + "/" + buttonIcon + '");',
};
for (var p in props)
toolbaritem.setAttribute(p, props[p]);
return toolbaritem;
}
});
} catch(e) { };
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", "Standard-Benutzer", "-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
Bitte mache Du doch noch einmal den Elchtest!
Das Ding mit Fenster schliesen und so.
Wäre sehr nett, wenn Du auf Deinem Mac das ganze auch mal testen könntest.
Eventuell kannst Du mir auch erklären, warum manche dieser Versionen bei dem einen oder anderen nicht funktionieren.
Apropos, nicht funktionieren!
Bei meinem System, Windows 10 Build 19045.3324, mit dem FF 116.0.2, funktionieren außnahmslos alle Skripte!
Genau deshalb brauche ich Eure Hilfe.