Kennt jemand ein Skript, das zum Tab-Kontextmenü einen Eintrag "Alle Tabs schließen" hinzufügt?
Das Fenster soll mit einem leeren Tab offen bleiben.

[userChrome.js] Alle Tabs schließen
-
aborix -
2. Mai 2012 um 23:23 -
Erledigt
-
-
ich kenne keins - deshalb mal ein erster Versuch (könnte problematisch sein, wenn der Browser "falsch" konfiguriert (s. unten) ist):
Code
Alles anzeigen// ==UserScript== // @name closealltabs.uc.js // @compatibility Firefox 12* // @include main // @version 1.0.20120503 // ==/UserScript== ucjs_closealltabs = { init: function() { var ele= document.getElementById("context_closeOtherTabs"); if (ele!=null) { menuitem = document.createElement("menuitem"); menuitem.setAttribute("label", "Alle Tabs schliessen"); menuitem.setAttribute("oncommand",'gBrowser.removeAllTabsBut(0);'); ele.parentNode.insertBefore(menuitem, ele); } } } ucjs_closealltabs.init();
Falls Taberweiterungen installiert sind oder so etwas wie browser.tabs.closeWindowWithLastTab (bei TabUtilisLite: extensions.tabutils.closeLastWindowWithLastTab) auf True steht, wird mit dem einfachen Skript der gesamte Browser geschlossen. Man müsste in dem Fall vor dem "removeAllTabsBut" erst einen neuen Tab öffnen und alles bis auf den neuen Tab schliessen.
-
Das realisiere ich mit Tab Mix Plus
[Blockierte Grafik: http://www.bilderload.com/thumb/202180/a1ROA7Q.jpg]
-
Ich habe den Eintrag "Andere Tabs schließen" auch ohne TabMixPlus, in einem Testprofil auch ohne TabUtilsLite. Bei mir bewirkt er aber nicht (die Fettschrift stammt von mir):
ZitatDas Fenster soll mit einem leeren Tab offen bleiben.
-
Danke, das Skript funktioniert wie gewünscht.
browser.tabs.closeWindowWithLastTab steht dabei auf false; bei true wird das Fenster geschlossen.3 Kleinigkeiten, die ich noch anders haben möchte:
1. "Alle Tabs schliessen" steht vor "AndereTabs schließen", ich möchte es danach und vor der Trennlinie haben.
2. "schliessen" soll anstatt ss ein ß haben. Wenn ich das im Skript ändere, erscheint im Menü statt des ß dieses Zeichen:
[Blockierte Grafik: http://img7.imagebanana.com/img/393jjo5s/FFFD.PNG]3. Ich lasse beim Schließen mehrerer Tabs die Warnung "Sie sind dabei, ... Tabs zu schließen. Soll dieser Vorgang wirklich fortgesetzt werden?" anzeigen. Beim Schließen der Tabs mit dem Skript wird in der Warnung 1 Tab weniger genannt, als die Anzahl ist. Lässt sich das korrigieren?
-
zu 1.) weil es kein insertAfter gibt, muss man ein wenig tricksen.
Ändere mal die Zeile 15 von:
in:zu 2.) das ist nur ein Codierungsproblem der Datei. Wenn du Notepad++ im Einsatz hast, verwende in der Menüzeile Kodierung/UTF-8 ohne BOM.
zu 3.) dann muss man wohl parallel einen neuen Tab anlegen. Ändere Zeile 14 in:
Codemenuitem.setAttribute("oncommand",'gBrowser.removeAllTabsBut(gBrowser.addTab("about:blank"));');
Anbei das überarbeitete Skript:
Code
Alles anzeigen// ==UserScript== // @name closealltabs.uc.js // @compatibility Firefox 12* // @include main // @version 1.0.20120505 // ==/UserScript== ucjs_closealltabs = { init: function() { var ele= document.getElementById("context_closeOtherTabs"); if (ele!=null) { menuitem = document.createElement("menuitem"); menuitem.setAttribute("label", "Alle Tabs schließen"); menuitem.setAttribute("oncommand",'gBrowser.removeAllTabsBut(gBrowser.addTab("about:blank"));'); ele.parentNode.insertBefore(menuitem, ele.nextSibling); } } } ucjs_closealltabs.init();
-
Abend in die Runde.
Besteht denn hier der Wunsch, das neue Script in die Sammlung aufzunehmen ? -
// loshombre: Ist die Schale nicht schön?
-
// Sie ist wirklich toll! Und neben dem Pokal kommt sie noch mehr zu Geltung
Ob dat so kommt, sehen wir aber erst nächsten Samstag.
-
zum neuen Skript:
1.: Funktioniert.
2.: Funktioniert.
3.: Die Anzahl stimmt jetzt. Wenn ich allerdings bei der Warnung auf "Abbrechen" klicke, wird ein zusätzlicher leerer Tab geöffnet. Lässt sich das vermeiden?
-
zu 3. - ich habe keine Idee.
hombre: ich finde, aufgrund der Schwächen des Skriptes, eher nicht.
-
Ok Chefschrauber. Aus den Augen, aus dem Sinn.