Ich schreibe gerade Alice, dem Autor.
Erledigt:
Div. Skripte funktionieren im aktuellem Nightly nicht mehr
-
2002Andreas -
9. Januar 2025 um 14:49 -
Erledigt
-
-
-
wegen des Kontextmenüs?
Sollte ich dich falsch verstanden haben, dann sorry.
Aber wenn die Liste leer ist, was willst du denn dann da drin
Sie ist ausgegraut, weil es keinen Inhalt gibt, sie also nicht aktiv ist.
Ist doch Standard auch so.
Gibt es keine geschlossene Fenster, ist der Eintrag ausgegraut, und auch kein Zugriff möglich.
-
wegen des Kontextmenüs?
Sollte ich dich falsch verstanden haben, dann sorry.
...
Man, ich bin blöd!
Ich habe was anderes gemeint!
Kürzlich geschlossene Tabs > Alle Tabs wieder öffnenDiese Schaltfläche "Alle Tabs wieder öffnen" steht unten im Menü!
Sie wird generiert!
Hat jemand eine Idee, wie diese Schaltfläche ganz noch oben verschoben werden kann?
Bzw. wie der betreffende Code umgeschrieben werden kann, damit zwar die Liste generiert wird,
aber nicht die diese Schaltfläche "Alle Tabs wieder öffnen"!
Dann könnte man so eine Schaltfläche auch "hardcoded" ganz oben platzieren. -
Beitrag von Mitleser (
17. Januar 2025 um 23:24 )Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: nicht hifreich (17. Januar 2025 um 23:25 ). -
Bei mir ist die Schaltfläche "Alle Tabs wieder öffnen" oberhalb der Liste, auch in einem neuen Profil...
Quelle:userChrome.js/Firefox 135/UndoListInTabmenuToo.uc.js at master · Endor8/userChrome.jsSkripte für die Firefox-Erweiterung userChromeJS. Contribute to Endor8/userChrome.js development by creating an account on GitHub.github.com -
Damit ich besser vergleichen kann, wärst Du so nett und verlinkst die Beiträge?
Jene ohne Übersetzungsschwächen (bzw. ohne Fehler). Bitte, Danke.Upps. OK, bei der Menge der Antworten kann man den Überblick verlieren. Und ich glaube, mir geht das selbst so:
- Version 1 : 15. Januar 2025 um 23:04
- Version 2: 16. Januar 2025 um 10:29
V. 1 scheint mir die bessere zu sein, obwohl Du sie anscheinend zuerst gepostet hast. ( Endor bitte mal abgleichen.)
Ich hatte weiter oben geschrieben, dass jemand Alice informieren sollte. Der jemand war jetzt ich:
Error with UndoListInTabmenuToo.uc.js · Issue #91 · alice0775/userChrome.js
-
Ich hatte weiter oben geschrieben, dass jemand Alice informieren sollte. Der jemand war jetzt ich:
Sie haben genau das Richtige getan, vielen Dank.
Die optimale Variante von UndoListInTabmenuToo.uc.js sieht für mich so aus.
- Der erste Punkt im Untermenü sollte „Open the last closed tab“ sein (ich glaube, in einigen Varianten des Skripts ist es so, aber ich bin schon verwirrt).
- In -- config -- sollte es möglich sein, „Alle Tabs wieder öffnen“ zu deaktivieren, oder es sollte bekannte Codezeilen geben, um sie manuell zu entfernen.
- Wenn man auf „Alle Tabs wieder öffnen“ klickt, werden alle Tabs auf einmal geladen, nicht im „Lazy Load“-Modus, und das verursacht Probleme.
- Die Breite der Dropdown-Liste der geschlossenen Tabs muss vergrößert werden, sie ist 3-4cm kleiner als bei der „Undo Cloae Tab 8.0.0“-Erweiterung und das ist unbequem.Hat jemand eine Idee, wegen des Kontextmenüs?
Wenn der bereits Code // „Liste Kürzlich geschlossener Fenster“ entfernt wird, bleibt der Eintrag „Geschlossener Tabs“ im Kontextmenü der Seite mit einer leeren Tabs aktiv.
-
wie diese Schaltfläche ganz noch oben verschoben werden kann?
Meinst du das so?
-
Bei mir ist die Schaltfläche "Alle Tabs wieder öffnen" oberhalb der Liste, auch in einem neuen Profil...
Quelle:
https://github.com/Endor8/userChr…abmenuToo.uc.jsSelbst ohne CSS und ohne andere Skripts ist der Eintrag bei mir unten, nach der Liste!
Damit ich besser vergleichen kann, wärst Du so nett und verlinkst die Beiträge?
Jene ohne Übersetzungsschwächen (bzw. ohne Fehler). Bitte, Danke.Upps. OK, bei der Menge der Antworten kann man den Überblick verlieren. Und ich glaube, mir geht das selbst so:
- Version 1 : 15. Januar 2025 um 23:04
- Version 2: 16. Januar 2025 um 10:29
V. 1 scheint mir die bessere zu sein, obwohl Du sie anscheinend zuerst gepostet hast. ( Endor bitte mal abgleichen.)
Ich hatte weiter oben geschrieben, dass jemand Alice informieren sollte. Der jemand war jetzt ich:
Error with UndoListInTabmenuToo.uc.js · Issue #91 · alice0775/userChrome.js
Danke.
Da das Skript bei mir so generell nicht so will, wie ich mir das vorstelle, mach ich erst einmal nichts mehr.Und auch das Appmenü will nicht mehr!
Meine angepasste Version hat seit heute auch Macken!
Die Aufrufe zu den Verzeichnissen (Ordner) tun es nicht mehr.wie diese Schaltfläche ganz noch oben verschoben werden kann?
Meinst du das so?
...
Ja, super, danke.
Nun sind aber unten zwei Separatoren.
Hast Du dazu auch noch eine Idee?Diese Schaltfläche, Separator, die Liste, Separator, letzter Menüpunkt (Liste der letzten Tabs löschen)
-
Hast Du dazu auch noch eine Idee?
Teste bitte:
-
2002Andreas funktioniert leider nicht.
Kann aber auch gar nicht, denn je nachdem wieviele Einträge die Liste hat,
ändert sich "menuseparator:nth-child(X)".Bei meinem Test, stand da z.B. 26.
Werde mal testen, ob es nicht im Skript direkt irgendwie geht.
Aber danke. -
funktioniert leider nicht.
Teste wieder:
-
-
-
2002Andreas Danke, mit dem Deaktivieren der Zeile 150 ist einer der Separatoren weg.
Mit dem CSS ist der Eintrag "Alle Tabs wieder öffnen" ganz oben.
Nun fehlt nur noch ein Separator nach diesem Eintrag,
um die Liste "abzutrennen". -
Nun fehlt nur noch ein Separator nach diesem Eintrag,
Teste bitte:
-
Ins Skript integriert!
JavaScriptvar css =` .restoreallitem { order: -1 !important; border-bottom: 1px solid #808080 !important; margin: 2px 1em; } `; 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);
-
Ins Skript integriert!
-
2002Andreas Also nochmals vielen Dank.
Ich habe das Skript noch einmal überarbeitet und konnte einen "echten" Separator per JavaScript platzieren.
So schaut das ganze dann etwas schöner aus.
Aber Dein CSS war richtig Gold wertWer sich das Skript anschauen möchte:
JavaScript
Alles anzeigen// ==UserScript== // @name UndoListInTabmenuToo // @namespace http://space.geocities.yahoo.co.jp/gl/alice0775 // @description UndoListInTabmenuToo.uc.js // @include main // @compatibility Firefox 135 // @author Alice0775 // @version 2025/01/18 fix bug via CSS thanks 2002Andreas // @version 2025/01/15 fix bug by Mira Bellenbaum (Tooltips deleted because incorrect) // @version 2025/01/05 remove redundant menuitems // @version 2025/01/05 fix bug // @version 2024/12/22 fix Bug 1936336 - Disallow inline event handlers // @version 2024/08/23 Bug 1690613 - Allow access to url/title/favIconUrl without "tabs" permission in session API // @version 2023/06/16 08:00 Bug 1819675 - Expand recently closed tabs to include all Windows // @version 2022/05/10 fix ref to context-media-eme-separator // @version 2021/12/09 remove JSON.parse (Bug 1733425) // @version 2021/04/25 fix 1689378 // @version 2019/11/14 remove eval // @version 2019/06/30 10:00 Bug 1555060 Convert <tabs> to a custom element // @version 2019/06/24 23:00 wait for gBrowser initialized // @version 2019/05/21 08:30 fix 69.0a1 Bug 1551320 - Replace all createElement calls in XUL documents with createXULElement // @version 2018/05/10 60 // @version 2017/11/18 nsIPrefBranch to nsIPrefBranch // @version 2010/09/18 00:00 4.0b7pre // @version 2009/02/03 13:00 Tooltip zeigt jetzt den Verlauf in Tabs an // @Note Fügt die UndoClose Tab List für Tabs und Kontextmenüs hinzu // @OriginalCode Orginalcode aus browser.js für populateUndoSubmenu verwendet // @version 2018/05/09 15:00 61 // ==/UserScript== // @version 2010/03/26 13:00 Minefield/3.7a4pre Bug 554991 - allow tab context menu to be modified by normal XUL overlays // @version 2010/03/15 00:00 Minefield/3.7a4pre Bug 347930 - Tab strip should be a toolbar instead // @version 2009/09/09 15:00 Mittlere Klickverarbeitung // @version 2009/09/03 22:00 Firefox3.7a1pre Funktion wurde wieder hergestellt.(Bug 489925. getElementById should not return anonymous nodes) // @version 2009/08/22 00:00 Firefox3.6 Ändern des stringbandle // @version 2009/04/24 00:00 #394759 [Firefox:Session Restore]-Add undo close window feature // @version 2008/10/12 18:00 FFx3.0.4pre Mittelklick-Popupmenü wurde nicht geschlossen und andere Korrekturen // @version 2007/10/05 10:00 var UndoListInTabmenu = { // -- config -- TABCONTEXTMENU : true , //Im Tabkontextmenü: anzeigen: true, nicht anzeigen: false CONTEXTMENU : false, //Im Hauptkontextmenü: anzeigen: true , nicht anzeigen: false // -- config end-- ss: null, get tabContext() { return document.getElementById("tabContextMenu"); }, get navigatorBundle() { return Services.strings.createBundle( "chrome://browser/locale/browser.properties" ); }, init: function(){ var css =` .restoreallitem { order: -1 !important; } #tabContextUndoList :is(menu,menuitem), #ContextUndoList :is(menu,menuitem) { min-height: 20px !important; padding-top: 0 !important; padding-bottom: 0 !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); if (this.TABCONTEXTMENU){ //Tabkontextmenü var tabContext = this.tabContext; this.makePopup(tabContext, null, "tabContextUndoList"); } if (this.CONTEXTMENU){ //Hauptkontextmenü var contextMenu = document.getElementById("contentAreaContextMenu"); var refItem = document.getElementById("context-media-eme-separator"); this.makePopup(contextMenu, refItem, "ContextUndoList"); } // Geschlossene Tabs dem NS-Sitzungsspeicher entnehmen this._ss = SessionStore; }, makePopup: function(popup, refItem, id){ var menu; //label const locale = "de"; // "Liste Kürzlich geschlossener Fenster" menu = document.createXULElement("menu"); menu.setAttribute("id", "historyUndoWindowMenu3"); menu.setAttribute("label", "K\u00FCrzlich geschlossene Fenster"); menu.setAttribute("accesskey", "F"); menu.setAttribute("disabled", "true"); popup.insertBefore(menu, refItem); menupopup = document.createXULElement("menupopup"); menu.appendChild(menupopup); menupopup.setAttribute("id", "historyUndoWindowPopup3"); //menu.setAttribute("onpopupshowing", "UndoListInTabmenu.populateUndoWindowSubmenu(this);"); menupopup.addEventListener("popupshowing", (event) => UndoListInTabmenu.populateUndoWindowSubmenu(event.currentTarget)); //Liste kürzlich geschosener Tabs const LABELTEXT = "K\u00FCrzlich geschlossene Tabs"; //create menu menu = document.createXULElement("menu"); menu.setAttribute("label", LABELTEXT); menu.setAttribute("accesskey", "K"); if (id) menu.setAttribute("id", id); //menu.setAttribute("disabled", true); var menupopup = document.createXULElement("menupopup"); menupopup.addEventListener("popupshowing", () => UndoListInTabmenu.populateUndoSubmenu(menupopup)); //menupopup.setAttribute("onpopupshowing", "UndoListInTabmenu.populateUndoSubmenu(this);"); menu.appendChild(menupopup); popup.insertBefore(menu, refItem); //Eventlistener hinzufügen popup.addEventListener('popupshowing',function(event) { UndoListInTabmenu.toggleRecentlyClosedWindows(document.getElementById("historyUndoWindowMenu3")); // no restorable tabs, so make sure menu is disabled, and return if (UndoListInTabmenu._ss.getClosedTabCount(window) === 0) { menu.setAttribute("disabled", true); //menu.setAttribute("hidden", true); return; } menu.removeAttribute("disabled"); //menu.setAttribute("hidden", false); },false); }, /** * Auffüllen, wenn das Chronik-Menü geöffnet wird */ populateUndoSubmenu: function(undoPopup) { while (undoPopup.hasChildNodes()) { undoPopup.removeChild(undoPopup.firstChild); } var utils = RecentlyClosedTabsAndWindowsMenuUtils; var tabsFragment = utils.getTabsFragment( window, "menuitem", /* aPrefixRestoreAll = */ true, "menu-history-reopen-all-tabs" ); undoPopup.appendChild(tabsFragment); // Erstelle einen Separator unter dem Eintrag "Alle Tabs wieder öffnen" let separator = document.createXULElement("menuseparator"); separator.classList.add("restoreall-separator"); undoPopup.insertBefore(separator, undoPopup.children[0]); // Direkt nach dem ersten Eintrag ("Alle Tabs wieder öffnen") // populate tab historis for tooltip // var undoItems = UndoListInTabmenu._ss.getClosedTabDataForWindow(window); // for (var i = 0; i < undoItems.length; i++) { // var entries = undoItems[i].state ? undoItems[i].state.entries : undoItems[i].entries; // var tooltiptext = ""; // for (var j = entries.length - 1; j > -1; j--){ // if (j != entries.length - 1) // tooltiptext += "\n"; // tooltiptext += parseInt(j + 1, 10) + ". " + entries[j].title; // } // undoPopup.childNodes[i + 2/*restore all, sep*/].setAttribute("tooltiptext", tooltiptext); // } // "Append Clear undo close tb list" //undoPopup.appendChild(document.createXULElement("menuseparator")); // "Liste der letzten Tabs löschen"-Eintrag hinzufügen let clearListItem = undoPopup.appendChild(document.createXULElement("menuitem")); clearListItem.setAttribute("label", "Liste der letzten Tabs l\u00F6schen"); clearListItem.setAttribute("accesskey", "C"); clearListItem.addEventListener("command", () => { let prefs = Services.prefs; let max_undo = prefs.getIntPref("browser.sessionstore.max_tabs_undo"); prefs.setIntPref("browser.sessionstore.max_tabs_undo", 0); prefs.setIntPref("browser.sessionstore.max_tabs_undo", max_undo); }, false); }, toggleRecentlyClosedWindows: function PHM_toggleRecentlyClosedWindows(menu) { // enable/disable the Recently Closed Windows sub menu // no restorable windows, so disable menu if (this._ss.getClosedWindowCount() === 0) menu.setAttribute("disabled", true); else menu.removeAttribute("disabled"); }, /** * Populate when the history menu is opened */ populateUndoWindowSubmenu: function PHM_populateUndoWindowSubmenu(undoPopup) { while (undoPopup.hasChildNodes()) { undoPopup.removeChild(undoPopup.firstChild); } let utils = RecentlyClosedTabsAndWindowsMenuUtils; let windowsFragment = utils.getWindowsFragment( window, "menuitem", /* aPrefixRestoreAll = */ true, "menu-history-reopen-all-windows" ); undoPopup.appendChild(windowsFragment); undoPopup.firstChild.setAttribute("accesskey", "R"); // "Append Clear undo close window list" undoPopup.appendChild(document.createXULElement("menuseparator")); m = undoPopup.appendChild(document.createXULElement("menuitem")); m.setAttribute("label", "Liste der kürzlich geschlossenen Fenster l\u00F6schen"); m.setAttribute("accesskey", "C"); m.addEventListener("command", () => { for (let i = SessionStore.getClosedWindowCount() -1; i >= 0; i--) SessionStore.forgetClosedWindow(i); }, false); } }; // Wir sollten die Umleitung nur starten, wenn das Browser-Fenster den Startvorgang abgeschlossen hat. // Andernfalls sollten wir warten, bis der Startvorgang abgeschlossen ist. if (gBrowserInit.delayedStartupFinished) { UndoListInTabmenu.init(); } else { let delayedStartupFinished = (subject, topic) => { if (topic == "browser-delayed-startup-finished" && subject == window) { Services.obs.removeObserver(delayedStartupFinished, topic); UndoListInTabmenu.init(); } }; Services.obs.addObserver(delayedStartupFinished, "browser-delayed-startup-finished"); }
-