Ok, es kann nicht funktionieren, weil das Aufrufen des Popups eine interne Funktion ist.
Füge ich z.B.
JavaScript
// Füge den Event-Listener hinzu, um das Popup auszulösen
menuButton.addEventListener('click', function() {
// Öffne das Popup oder führe eine gewünschte Aktion aus
window.gBrowser.selectedTab = window.gBrowser.addTab("about:addons", {
triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal()
});
});
ein, wird sehr wohl der Tab about:addons geöffnet.
Wie man an die Funktion zum Öffnen des Popups kommt, entzieht sich leider meiner Kenntnis.
Sonst könnte ich (man) ja das Problem lösen.
Zum Test:
JavaScript
(function() {
if (!window.gBrowser) return;
/* Konfiguration */
let origID = "unified-extensions-button"// ID des originalen Buttons
let label = "Erweiterungen"
let tooltiptext = label; // auch eigener Text möglich, dieser in Anführungszeichen
/* Ende Konfiguration */
let menuButton = document.getElementById(origID)
let buttonID = 'ucjs_' + origID;
if (!CustomizableUI.getPlacementOfWidget( buttonID )) {
try {
CustomizableUI.createWidget({
id: buttonID,
type: 'custom',
defaultArea: CustomizableUI.AREA_NAVBAR,
onBuild: function(aDocument) {
let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbaritem');
toolbaritem.id = buttonID;
toolbaritem.className = 'chromeclass-toolbar-additional';
toolbaritem.setAttribute('label', label);
/*
toolbaritem.addEventListener('click', function() {
// Hole das aktuelle gBrowser und öffne einen neuen Tab mit dem SystemPrincipal
window.gBrowser.selectedTab = window.gBrowser.addTab("about:addons", {
triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal()
});
});
*/
return toolbaritem;
}
});
if (!CustomizableUI.getPlacementOfWidget( buttonID )) {
menuButton.style.display = 'none';
return;
};
} catch(e) {
menuButton.style.display = 'none';
return;
};
};
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(`
#unified-extensions-button.toolbarbutton-1.chromeclass-toolbar-additional image.toolbarbutton-icon {
width: 28px !important;
height: 28px !important;
fill: #FF00FF !important;
fill-opacity: 1 !important;
}
`), null, null);
sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
setTimeout(function() {
document.getElementById(buttonID).appendChild(menuButton),
menuButton.setAttribute('consumeanchor', buttonID);
menuButton.setAttribute('label', label);
menuButton.setAttribute('tooltiptext', tooltiptext);
// Füge den Event-Listener hinzu, um das Popup auszulösen
menuButton.addEventListener('click', function() {
// Öffne das Popup oder führe eine gewünschte Aktion aus
window.gBrowser.selectedTab = window.gBrowser.addTab("about:addons", {
triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal()
});
});
}, 0);
}());
Alles anzeigen