habe mit dem Script aus #15 diesen Fehler nicht.
Das habe ich gar nicht gesehen, sondern nur die ersten drei Zeilen dieses Beitrags. Da war ich wohl zu fix. Ich teste also mit der Version des TE.
habe mit dem Script aus #15 diesen Fehler nicht.
Das habe ich gar nicht gesehen, sondern nur die ersten drei Zeilen dieses Beitrags. Da war ich wohl zu fix. Ich teste also mit der Version des TE.
Ja, aber dann ist der Eintrag #context_closeTabOptions wieder vorhanden (auch bei dem Script aus #15). Dieser müsste dann per css ausgeblendet werden. Das funzt, aber eine JS-Lsg. wäre vorzuziehen.
Der Fehler liegt in Zeile 10; ich habe das auch schon lt. MDN versucht, geht auch nicht:
const node = document.getElementById("context_closeTabOptions");
if (node.parentNode) {
node.parentNode.removeChild(node);
}
Dazu müsste man dann vielleicht einen Fachmann einbeziehen. Die unsaubere Lsg. wäre dann das:
(function() {
if (!window.gBrowser)
return;
let menuitem = document.createXULElement('menuitem');
menuitem.id = 'context_closeLeftTabs';
menuitem.setAttribute('label', 'Linke Tabs schließen');
let tabContextMenu = document.getElementById('tabContextMenu');
let refItem = document.getElementById('context_closeTab');
tabContextMenu.insertBefore(document.getElementById('context_closeTabsToTheStart'), refItem);
tabContextMenu.insertBefore(document.getElementById('context_closeTabsToTheEnd'), refItem);
tabContextMenu.insertBefore(document.getElementById('context_closeOtherTabs'), refItem);
//click
menuitem.addEventListener('click', () => {
if (event.button == 0) {
for (let i = TabContextMenu.contextTab._tPos - 1; i >= 0; i--)gBrowser.removeTab(gBrowser.tabs[i], {animate: true});
}
});
/**/
var css =`
#context_closeTabOptions{ display:none !important; }
`;
var sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
var uri = makeURI('data:text/css;charset=UTF=8,' + encodeURIComponent(css));
sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
})();
Alles anzeigen