Auch wenn der Button mal wieder entfernt wird, hier noch eine Möglichkeit ihn per Skript zu verschieben:
Auch von mir Danke dafür. Aber das ist Skriptcode, der hier schon für andere Buttons umhergeflogen ist, oder?
Ich will das jedoch nutzen, um noch einmal dafür zu werben, die Skripte ein wenig anders zu schreiben:
Unabhängig davon hat der Konfigurationsbereich mit Variablen oder Konstanten meiner Meinung nach noch weitere Vorteile:
- Alles, was für jedes Skript individuell zu ändern ist, steht in einem Block sehr weit vorn.
- Allein die Button-ID wird immer mindestens zweimal benötigt […], was ohne Variable/Konstante die Fehleranfälligkeit bei Änderungen erhöht.
- Alles in allem weit geringerer Änderungsaufwand, […]
… wenn man – wie ich ja vermute, auch hier – ein bestehendes Skript nur an ein anderes Symbol anpasst. Hier im Skript, wie es Andreas präsentiert hat, kommt die ID ucjs_unified-extensions-button sechsmal vor. Und wenn man wie hier die Original-ID immer nur um ucjs_ erweitert, dann kann man das sogar so umformen:
JavaScript
/* Vorlage: 2002Andreas in https://www.camp-firefox.de/forum/thema/135846/?postID=1217540#post1217540
*/
(function() {
if (!window.gBrowser) return;
/* Konfiguration */
const origID = "unified-extensions-button",// ID des originalen Buttons
label = "Erweiterungen",
tooltiptext = label;// auch eigener Text möglich, dieser in Anführungszeichen
/* Ende Konfiguration */
const menuButton = document.getElementById(origID),
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);
return toolbaritem;
}
});
if (!CustomizableUI.getPlacementOfWidget( buttonID )) {
menuButton.style.display = 'none';
return;
};
} catch(e) {
menuButton.style.display = 'none';
return;
};
};
setTimeout(function() {
document.getElementById(buttonID).appendChild(menuButton);
menuButton.setAttribute('consumeanchor', buttonID);
menuButton.setAttribute('label', label);
menuButton.setAttribute('tooltiptext', tooltiptext);
}, 0);
}());
Alles anzeigen