Zum Test habe ich den Code so umgebaut, dass ich auch einen anderen Ordner für Icons auswählen kann. Auch das "Ersatzicon" wird angezeigt. Schau es dir mal bitte an, ob es so zu gebrauchen ist.
Code
// Button_Test.uc.js
// Öffnen des "Profilordners"
(function() {
if (location != "chrome://browser/content/browser.xhtml") return;
try {
CustomizableUI.createWidget({
id: 'buttonTest',
type: 'custom',
onBuild: function(aDocument) {
let toolbaritem = aDocument.createXULElement('toolbarbutton');
let props = {
id: 'buttonTest',
class: 'toolbarbutton-1 chromeclass-toolbar-additional',
label: 'buttonTest',
tooltiptext: 'Profil-Ordner öffnen',
};
for (var p in props) {
toolbaritem.setAttribute(p, props[p]);
}
return toolbaritem;
}
});
} catch(e){}
document.getElementById('buttonTest').addEventListener('click', event => {
if (event.button === 0) {
Services.dirsvc.get("ProfD", Ci.nsIFile).launch();
}
});
// Pfad zum Iconordner
let IconPath = "C:/FoxIcons/";
// Name & Dateiendung des anzuzeigenden Symbols!
let ButtonIcon = "gibtesnicht.png";
// Erstelle ein img-Element, um zu überprüfen, ob die Grafik geladen werden kann
let img = new Image();
img.src = "file:" + IconPath + ButtonIcon;
img.onload = function() {
// Wenn die Grafik geladen werden kann, setze das listStyleImage
document.getElementById('buttonTest').style.listStyleImage = 'url("' + ("file:" + IconPath + ButtonIcon) + '")';
};
img.onerror = function() {
// Wenn die Grafik nicht geladen werden kann, verwende das Fallback-Icon
document.getElementById('buttonTest').style.listStyleImage = 'url("chrome://browser/skin/fxa/avatar-empty.svg")';
};
})();
Alles anzeigen
