Button für kürzlich geschlossene Tabs

Schrauberecke: Hier geht es um optische und funktionelle Veränderungen (ohne Themes oder Personas) von Firefox oder von Webseiten per CSS-Codes oder JavaScript.
SuperDAU#0815
Junior-Mitglied
Beiträge: 15
Registriert: Sa, 18. Nov 2017 23:42

Re: Button für kürzlich geschlossene Tabs

#31

Beitrag von SuperDAU#0815 » Mo, 27. Nov 2017 21:19

Ja super, danke. @2002andreas + @endor

Jetzt klärt sich einiges...

Und der Firefox beherrscht die Sprachen, egal welche man benutzt? Manchmal will er wohl nur englisch, dann geht gleichzeitig aber auch deutsch z. B. in der userChrome.css... Egal, hauptsache es funktioniert überhaupt.

Gibt es eigentlich eine englische oder deutsche Liste mit allen Kontextmenü-Einträgen? Ich hätte da noch einige auszugeizen, wie der Winzer sagt :wink: . Man sucht sich echt wund, um z. B. nen Namen für einen speziellen Separator o. ä. zu finden...

Dank und Gruß

Supi

Benutzeravatar
2002Andreas
Moderator
Beiträge: 38006
Registriert: Fr, 04. Jul 2008 19:25
Wohnort: Niedersachsen

Re: Button für kürzlich geschlossene Tabs

#32

Beitrag von 2002Andreas » Mo, 27. Nov 2017 21:49

Dazu kann man die Browser-Werkzeuge benutzen.

Siehe bitte hier eine kleine Anleitung dazu.

Re: Inspector für Kontextmenü
Mit freundlichem Gruß
Andreas
Mein System    Meine Add-ons

SuperDAU#0815
Junior-Mitglied
Beiträge: 15
Registriert: Sa, 18. Nov 2017 23:42

Re: Button für kürzlich geschlossene Tabs

#33

Beitrag von SuperDAU#0815 » Mo, 27. Nov 2017 23:19

Beim Abarbeiten der Anleitung öffnet sich nach Klick auf "Browser-Werkzeuge" folgendes Fenster:
eingverb.png
eingverb.png (9.6 KiB) 606 mal betrachtet
und noch eines, wenn ich auf Abbrechen klicke:
eingverb2.png
eingverb2.png (3.38 KiB) 606 mal betrachtet
Die 4 rot eingerahmten Kacheln im zweiten Bild erscheinen nicht.

Wo könnte der Fehler liegen oder ist das die über Bild 1 gemeinte Anfrage?

Dank und Gruß

Supi

Benutzeravatar
2002Andreas
Moderator
Beiträge: 38006
Registriert: Fr, 04. Jul 2008 19:25
Wohnort: Niedersachsen

Re: Button für kürzlich geschlossene Tabs

#34

Beitrag von 2002Andreas » Di, 28. Nov 2017 8:55

Du musst der Verbindung zustimmen, steht auch in meinem Beitrag so drin:
Dann erhälst du nach einer Anfrage die du bestätigen musst dieses Fenster.
Mit einem Eintrag unter about:config kannst du die Meldung auch deaktivieren.

Den Wert:

devtools.debugger.prompt-connection

durch Doppelklick auf false setzen.
Mit freundlichem Gruß
Andreas
Mein System    Meine Add-ons

Benutzeravatar
Speravir
Senior-Mitglied
Beiträge: 789
Registriert: Do, 15. Dez 2005 1:33
Wohnort: Potsdam

Re: Button für kürzlich geschlossene Tabs

#35

Beitrag von Speravir Themen-Starter » Di, 28. Nov 2017 19:46

Um mal zurück zum Thema dieses Threads zu kommen:

Ich weiß nicht, warum mir das bei meiner Suche vor einigen Tagen nicht angezeigt wurde, aber das scheint genau das Addon zu sein, was ich suchte – ob es auch von den Beschränkungen in Fx 59 betroffen sein wird. muss man dann sehen:

Undo Closed Tabs Button (revived) (Addons.mozilla.org)
Steffen "Speravir"
---
Spiro, ergo sum.
Avatar: Vorlage Fox Head and Tail Tribal by Majykal-Melodi on DeviantArt, bearbeitet (Lizenz: CC by-sa 3.0)

Herb_
Mitglied
Beiträge: 338
Registriert: Do, 14. Apr 2011 12:27

Re: Button für kürzlich geschlossene Tabs

#36

Beitrag von Herb_ » Di, 28. Nov 2017 20:48

Was ich bereits in #3 geposted hatte macht auch nichts anderes, links Klick öffnet den Letzten, rechts Klick ne ganze Liste. Von daher versteh ich nicht so ganz das Geschraube.

SuperDAU#0815
Junior-Mitglied
Beiträge: 15
Registriert: Sa, 18. Nov 2017 23:42

Re: Button für kürzlich geschlossene Tabs

#37

Beitrag von SuperDAU#0815 » Mi, 29. Nov 2017 18:03

Hallo,

@herb_ und @speravir

die Lösung, addons o. ä. in Buttons in der Symbolleiste unterzubringen, ist in Einzelfällen sicher hilfreich, aber es wird auch schnell recht voll und unübersichtlich, daher das Bemühen, das, z. B., wie gewohnt, im Kontextmenü unterzubringen. Der alte menü-wizard, ja das war noch Zeiten.... Falls nicht bekannt: da konnte man schön reduzierte Kontextmenüs schaffen und in Einzelfall aber auch schnell wieder einzelne ausgeblendete Einträge aufrufen und einmalig nutzen oder wieder dauerhaft sichtbar machen.

Daher, please etwas sorry für die thread-Piraterie. :wink:

@ 2002Andreas

ich war vielleicht etwas stur der Reihenfolge der Anleitung gefolgt, da kommt erst der Hinweis mit der zu bestätigenden Anfrage und danach das Bild mit den zu setzenden Häkchen.

Nach dem Klick auf die Browserwerkzeuge erscheint aber dann erst die Abfrage. Das hat mich verunsichert und erst recht der Hinweis, dass jemand Kontrolle über meinen Browser übernehmen könne. Daher meine Nachfrage.

Aber dennoch nochmals vielen Dank für die Unterstützung, langsam wirds ja. Interessant ist aber auch, wie viele Lösungen zu vergleichbaren Zielen führen können und dass jeder andere Vorlieben im Umgang mit dem Browsing etc. hat.

mfg

Supi

Benutzeravatar
2002Andreas
Moderator
Beiträge: 38006
Registriert: Fr, 04. Jul 2008 19:25
Wohnort: Niedersachsen

Re: Button für kürzlich geschlossene Tabs

#38

Beitrag von 2002Andreas » Mi, 29. Nov 2017 18:45

SuperDAU#0815 hat geschrieben:
Mi, 29. Nov 2017 18:03
Daher meine Nachfrage.
Das ist doch völlig ok so.

Wenn du/jemand etwas nicht versteht...einfach hier nachfragen...hier wird ihnen geholfen :wink:
Mit freundlichem Gruß
Andreas
Mein System    Meine Add-ons

Benutzeravatar
Speravir
Senior-Mitglied
Beiträge: 789
Registriert: Do, 15. Dez 2005 1:33
Wohnort: Potsdam

Re: Button für kürzlich geschlossene Tabs

#39

Beitrag von Speravir Themen-Starter » Fr, 01. Dez 2017 1:50

Herb_ hat geschrieben:
Di, 28. Nov 2017 20:48
Was ich bereits in #3 geposted hatte macht auch nichts anderes,
Falsch, denn (dein Zitat):
links Klick öffnet den Letzten, rechts Klick ne ganze Liste.
Auf das Addon hinzuweisen war schon richtig (es wurde mir bei meiner Suche genauso wenig angezeigt), aber mir gefällt das so nicht, dass bei Linksklick sofort ein Tab wieder geöffnet wird. (Das alte Skript verhält sich genauso, besitzt aber daneben ein Dropdownfeld.)
Von daher versteh ich nicht so ganz das Geschraube.
Ignorier doch den Thread. Manchen gefällt eben keine der vorgestellten Lösungen oder ihnen reicht die Lösung per Kontextmenü.
Steffen "Speravir"
---
Spiro, ergo sum.
Avatar: Vorlage Fox Head and Tail Tribal by Majykal-Melodi on DeviantArt, bearbeitet (Lizenz: CC by-sa 3.0)

Benutzeravatar
captain chaos
Senior-Mitglied
Beiträge: 3154
Registriert: Mi, 15. Jun 2005 13:57

Re: Button für kürzlich geschlossene Tabs

#40

Beitrag von captain chaos » Sa, 31. Mär 2018 16:43

Endor hat geschrieben:
So, 26. Nov 2017 12:52
Betrifft Script aus Beitrag 2, bitte mal diese Version testen,
der Autor hat sie erst vor ein zwei Tagen aktualisiert:

Code: Alles auswählen

// ==UserScript==
// @name           UndoListInTabmenuToo
// @namespace      http://space.geocities.yahoo.co.jp/gl/alice0775
// @description    UndoListInTabmenuToo.uc.js
// @include        main
// @compatibility  Firefox 4.0 - 59
// @author         Alice0775
// @version        2017/11/18 nsIPrefBranch to nsIPrefBranch
// @version        2010/09/18 00:00 4.0b7pre
// @version        2009/02/03 13:00 ツールチップにタブ内履歴を表示するようにした
// @Note           タブやコンテキストメニューにもUndoClose Tab Listを追加するもの
// @OriginalCode   browser.jsからpopulateUndoSubmenuを拝借し, ごにょごにょした
// @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 中クリック処理
// ==/UserScript==
// @version        2009/09/03 22:00 Firegox3.7a1preで動かなくなっていたのを修正(Bug 489925. getElementById should not return anonymous nodes)
// @version        2009/08/22 00:00 Firegox3.6 stringbandleの変更による
// @version        2009/04/24 00:00 #394759 [Firefox:Session Restore]-Add undo close window feature
// @version        2008/10/12 18:00 Fx3.0.4pre中クリックしたときメニューポップアップが閉じないおよびその他fix
// @version        2007/10/05 10:00

var UndoListInTabmenu = {
// -- config --
  TABCONTEXTMENU : true ,  //タブコンテキストメニューに              追加する:[true], しない: false
  CONTEXTMENU    : true,  //コンテンツアリアコンテキストメニューに  追加する: true , しない:[false]
// -- config end--
  ss: null,

  get tabContext() {
    return document.getAnonymousElementByAttribute(
                        gBrowser, "anonid", "tabContextMenu")||
           gBrowser.tabContainer.contextMenu;
;
  },

  init: function(){

    if (this.TABCONTEXTMENU){
      //タブコンテキスト
      var tabContext = this.tabContext;
      this.makePopup(tabContext, null, "tabContextUndoList");
    }
    if (this.CONTEXTMENU){
      //コンテンツエリアコンテキスト
      var contextMenu = document.getElementById("contentAreaContextMenu");
      var refItem = document.getElementById("context-sep-stop");
      this.makePopup(contextMenu, refItem, "ContextUndoList");
    }
    // get closed-tabs from nsSessionStore
    this._ss = Cc["@mozilla.org/browser/sessionstore;1"].
               getService(Ci.nsISessionStore);

  },

  makePopup: function(popup, refItem, id){
    var menu;
    //label
    const locale = Components.classes["@mozilla.org/preferences-service;1"]
                   .getService(Components.interfaces.nsIPrefBranch).getCharPref("general.useragent.locale");
    if (this.getVer() > 3.0) {
      // "Recently Closed Windows"
      menu = document.createElement("menu");
      menu.setAttribute("id", "historyUndoWindowMenu3");
      menu.setAttribute("label", "K\u00FCrzlich geschlossene Fenster");
      menu.setAttribute("accesskey", "F");
      menu.setAttribute("disabled", "true");
      popup.insertBefore(menu, refItem);

      this.historyUndoWindowPopup3 = menu = menu.appendChild(document.createElement("menupopup"));
      menu.setAttribute("id", "historyUndoWindowPopup3");
      menu.setAttribute("onpopupshowing", "UndoListInTabmenu.populateUndoWindowSubmenu();");
    }

    //UndoClose Tab List  最近閉じたタブ
    const LABELTEXT = locale.indexOf("ja") == -1?"K\u00FCrzlich geschlossene Tabs":"\u6700\u8fd1\u9589\u3058\u305f\u30bf\u30d6";    //create menu
    menu = document.createElement("menu");
    menu.setAttribute("label", LABELTEXT);
    menu.setAttribute("accesskey", "T");
    if (id)
      menu.setAttribute("id", id);
    //menu.setAttribute("disabled", true);
    var menupopup = document.createElement("menupopup");
    if (this.getVer()<3) {
      menupopup.setAttribute("onpopupshowing", "UndoListInTabmenu.populateUndoSubmenu(this);");
    } else if (this.getVer()<3.6) {
      menupopup.setAttribute("onpopupshowing", "UndoListInTabmenu.populateUndoSubmenu3(this);");
    } else {
      menupopup.setAttribute("onpopupshowing", "UndoListInTabmenu.populateUndoSubmenu36(this);");
    }
    menu.appendChild(menupopup);
    popup.insertBefore(menu, refItem);

    //add event listener
    popup.addEventListener('popupshowing',function(event) {
      if (UndoListInTabmenu.getVer() > 3.0)
        UndoListInTabmenu.toggleRecentlyClosedWindows();
      // 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);
  },

  /**
   * Populate when the history menu is opened  (Fx2)
   */
  populateUndoSubmenu: function(undoPopup) {

    // remove existing menu items
    while (undoPopup.hasChildNodes())
      undoPopup.removeChild(undoPopup.firstChild);

    // populate menu
    var undoItems = eval("(" + UndoListInTabmenu._ss.getClosedTabData(window) + ")");
    for (var i = 0; i < undoItems.length; i++) {
        var m = undoPopup.appendChild(document.createElement("menuitem"));
      m.setAttribute("label", undoItems[i].title);
      m.setAttribute("value", i);
      m.setAttribute("oncommand", "undoCloseTab(" + i + ");");
      m.setAttribute("onclick", "UndoListInTabmenu._undoCloseMiddleClick(event);");
    }

    // "open in tabs"
    var bundleService = Cc["@mozilla.org/intl/stringbundle;1"].
                        getService(Ci.nsIStringBundleService);
    var stringBundle = bundleService.createBundle("chrome://browser/locale/bookmarks/bookmarks.properties");
    undoPopup.appendChild(document.createElement("menuseparator"));
    m = undoPopup.appendChild(document.createElement("menuitem"));
    m.setAttribute("label", stringBundle.GetStringFromName("cmd_bm_openfolder"));
    m.setAttribute("accesskey", stringBundle.GetStringFromName("cmd_bm_openfolder_accesskey"));
    m.addEventListener("command", function() {
      for (var i = 0; i < undoItems.length; i++)
        undoCloseTab();
    }, false);
  },

  /**
    * Re-open a closed tab and put it to the end of the tab strip.
    * Used for a middle click.
    * @param aEvent
    *        The event when the user clicks the menu item
    */
  _undoCloseMiddleClick: function PHM__undoCloseMiddleClick(aEvent) {
    if (aEvent.button != 1)
      return;

    undoCloseTab(aEvent.originalTarget.value);
    gBrowser.moveTabToEnd();
    if (!aEvent.ctrlKey)
      aEvent.originalTarget.parentNode.parentNode.parentNode.hidePopup();
  },

  /**
   * Populate when the history menu is opened (Fx3)
   */
  populateUndoSubmenu3: function(undoPopup) {

    // remove existing menu items
    while (undoPopup.hasChildNodes())
      undoPopup.removeChild(undoPopup.firstChild);

    // "Open All in Tabs"
    var strings = gNavigatorBundle;
    m = undoPopup.appendChild(document.createElement("menuitem"));
    m.setAttribute("label", strings.getString("menuOpenAllInTabs.label"));
    m.setAttribute("accesskey", strings.getString("menuOpenAllInTabs.accesskey"));
    m.addEventListener("command", function() {
      for (var i = 0; i < undoItems.length; i++)
        undoCloseTab();
    }, false);

    undoPopup.appendChild(document.createElement("menuseparator"));

    // populate menu
    var undoItems = eval("(" + UndoListInTabmenu._ss.getClosedTabData(window) + ")");
    for (var i = 0; i < undoItems.length; i++) {
      var entries = undoItems[i].state.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;
      }
      var m = document.createElement("menuitem");
      m.setAttribute("tooltiptext", tooltiptext);
      m.setAttribute("label", undoItems[i].title);
      if (undoItems[i].image)
        m.setAttribute("image", undoItems[i].image);
      m.setAttribute("class", "menuitem-iconic bookmark-item");
      m.setAttribute("value", i);
      m.setAttribute("oncommand", "undoCloseTab(" + i + ");");
      m.setAttribute("onclick", "UndoListInTabmenu._undoCloseMiddleClick(event);");
      if (i == 0)
        m.setAttribute("key", "key_undoCloseTab");
      undoPopup.appendChild(m);
    }

    // "Clear undo close tb list"
    undoPopup.appendChild(document.createElement("menuseparator"));

    m = undoPopup.appendChild(document.createElement("menuitem"));
    m.setAttribute("label", "Liste der letzten Tabs l\u00F6schen");
    m.setAttribute("accesskey", "l");
    m.addEventListener("command", function() {
      var max_undo = UndoListInTabmenu.getPref("browser.sessionstore.max_tabs_undo", "int", 10);
      UndoListInTabmenu.setPref("browser.sessionstore.max_tabs_undo", "int", 0);
      UndoListInTabmenu.setPref("browser.sessionstore.max_tabs_undo", "int", max_undo);
      if (max_undo != UndoListInTabmenu.getPref("browser.sessionstore.max_tabs_undo", "int", 10))
        UndoListInTabmenu.setPref("browser.sessionstore.max_tabs_undo", "int", max_undo);
    }, false);
  },

  /**
   * Populate when the history menu is opened (Fx3.6)
   */
  populateUndoSubmenu36: function(undoPopup) {

    // remove existing menu items
    while (undoPopup.hasChildNodes())
      undoPopup.removeChild(undoPopup.firstChild);

    // "Open All in Tabs"
    var strings = gNavigatorBundle;
    m = undoPopup.appendChild(document.createElement("menuitem"));
    m.setAttribute("label", strings.getString("menuRestoreAllTabs.label"));
    //m.setAttribute("class", "menuitem-iconic bookmark-item");
    m.setAttribute("accesskey", "R" /*strings.getString("menuRestoreAllTabs.accesskey")*/);
    m.addEventListener("command", function() {
      for (var i = 0; i < undoItems.length; i++)
        undoCloseTab();
    }, false);

    undoPopup.appendChild(document.createElement("menuseparator"));

    // populate menu
    var undoItems = eval("(" + UndoListInTabmenu._ss.getClosedTabData(window) + ")");
    for (var i = 0; i < undoItems.length; i++) {
      var entries = undoItems[i].state.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;
      }
      var m = document.createElement("menuitem");
      m.setAttribute("tooltiptext", tooltiptext);
      m.setAttribute("label", undoItems[i].title);
      if (undoItems[i].image)
        m.setAttribute("image", undoItems[i].image);
      m.setAttribute("class", "menuitem-iconic bookmark-item");
      m.setAttribute("value", i);
      m.setAttribute("oncommand", "undoCloseTab(" + i + ");");
      m.setAttribute("onclick", "UndoListInTabmenu._undoCloseMiddleClick(event);");
      if (i == 0)
        m.setAttribute("key", "key_undoCloseTab");
      undoPopup.appendChild(m);
    }

    // "Clear undo close tb list"
    undoPopup.appendChild(document.createElement("menuseparator"));

    m = undoPopup.appendChild(document.createElement("menuitem"));
    m.setAttribute("label", "Liste der letzten Tabs l\u00F6schen");
    m.setAttribute("class", "menuitem-iconic bookmark-item");
    m.setAttribute("accesskey", "l");
    m.addEventListener("command", function() {
      var max_undo = UndoListInTabmenu.getPref("browser.sessionstore.max_tabs_undo", "int", 10);
      UndoListInTabmenu.setPref("browser.sessionstore.max_tabs_undo", "int", 0);
      UndoListInTabmenu.setPref("browser.sessionstore.max_tabs_undo", "int", max_undo);
      if (max_undo != UndoListInTabmenu.getPref("browser.sessionstore.max_tabs_undo", "int", 10))
        UndoListInTabmenu.setPref("browser.sessionstore.max_tabs_undo", "int", max_undo);
    }, false);
  },

  toggleRecentlyClosedWindows: function PHM_toggleRecentlyClosedWindows() {
    // enable/disable the Recently Closed Windows sub menu
    let undoPopup = this.historyUndoWindowPopup3;
    // no restorable windows, so disable menu
    if (this._ss.getClosedWindowCount() == 0)
      this.historyUndoWindowPopup3.parentNode.setAttribute("disabled", true);
    else
      this.historyUndoWindowPopup3.parentNode.removeAttribute("disabled");
  },

  /**
   * Populate when the history menu is opened
   */
  populateUndoWindowSubmenu: function PHM_populateUndoWindowSubmenu() {
    let undoPopup = this.historyUndoWindowPopup3;
    let menuLabelString = gNavigatorBundle.getString("menuUndoCloseWindowLabel");
    let menuLabelStringSingleTab =
      gNavigatorBundle.getString("menuUndoCloseWindowSingleTabLabel");

    // remove existing menu items
    while (undoPopup.hasChildNodes())
      undoPopup.removeChild(undoPopup.firstChild);

    // no restorable windows, so make sure menu is disabled, and return
    if (this._ss.getClosedWindowCount() == 0) {
      undoPopup.parentNode.setAttribute("disabled", true);
      return;
    }
    // enable menu
    undoPopup.parentNode.removeAttribute("disabled");
    let undoItems = JSON.parse(this._ss.getClosedWindowData());
    // "Open All in Windows"
    let m = undoPopup.appendChild(document.createElement("menuitem"));
    m.setAttribute("label", gNavigatorBundle.getString("menuRestoreAllWindows.label"));
    //m.setAttribute("class", "menuitem-iconic bookmark-item");
    m.setAttribute("accesskey", "W"/*gNavigatorBundle.getString("menuRestoreAllWindows.accesskey")*/);
    m.setAttribute("oncommand",
      "for (var i = 0; i < " + undoItems.length + "; i++) UndoListInTabmenu.undoCloseWindow();");
    undoPopup.appendChild(document.createElement("menuseparator"));
    // populate menu
    for (let i = 0; i < undoItems.length; i++) {
      let undoItem = undoItems[i];
      let otherTabsCount = undoItem.tabs.length - 1;
      let label = (otherTabsCount == 0) ? menuLabelStringSingleTab
                                        : PluralForm.get(otherTabsCount, menuLabelString);
      let menuLabel = label.replace("#1", undoItem.title)
                           .replace("#2", otherTabsCount);
      let m = document.createElement("menuitem");
      m.setAttribute("label", menuLabel);
      let selectedTab = undoItem.tabs[undoItem.selected - 1];
      if (selectedTab.attributes.image) {
        let iconURL = selectedTab.attributes.image;
        // don't initiate a connection just to fetch a favicon (see bug 467828)
        if (/^https?:/.test(iconURL))
          iconURL = "moz-anno:favicon:" + iconURL;
        m.setAttribute("image", iconURL);
      }
      m.setAttribute("class", "menuitem-iconic bookmark-item");
      m.setAttribute("oncommand", "UndoListInTabmenu.undoCloseWindow(" + i + ");");
      if (i == 0)
        m.setAttribute("key", "key_undoCloseWindow");
      undoPopup.appendChild(m);
    }
  },


  /**
   * Re-open a closed window.
   * @param aIndex
   *        The index of the window (via nsSessionStore.getClosedWindowData)
   * @returns a reference to the reopened window.
   */
  undoCloseWindow: function (aIndex) {
    let ss = Cc["@mozilla.org/browser/sessionstore;1"].
             getService(Ci.nsISessionStore);
    let window = null;
    if (ss.getClosedWindowCount() > (aIndex || 0))
      window = ss.undoCloseWindow(aIndex || 0);

    return window;
  },

  getPref: function(aPrefString, aPrefType, aDefault){
    var xpPref = Components.classes['@mozilla.org/preferences-service;1']
                  .getService(Components.interfaces.nsIPrefBranch);
    try{
      switch (aPrefType){
        case 'complex':
          return xpPref.getComplexValue(aPrefString, Components.interfaces.nsILocalFile); break;
        case 'str':
          return xpPref.getCharPref(aPrefString).toString(); break;
        case 'int':
          return xpPref.getIntPref(aPrefString); break;
        case 'bool':
        default:
          return xpPref.getBoolPref(aPrefString); break;
      }
    }catch(e){
    }
    return aDefault;
  },

  setPref: function(aPrefString, aPrefType, aValue){
    var xpPref = Components.classes['@mozilla.org/preferences-service;1']
                  .getService(Components.interfaces.nsIPrefBranch);
    try{
      switch (aPrefType){
        case 'complex':
          return xpPref.setComplexValue(aPrefString, Components.interfaces.nsILocalFile, aValue); break;
        case 'str':
          return xpPref.setCharPref(aPrefString, aValue); break;
        case 'int':
          aValue = parseInt(aValue);
          return xpPref.setIntPref(aPrefString, aValue);  break;
        case 'bool':
        default:
          return xpPref.setBoolPref(aPrefString, aValue); break;
      }
    }catch(e){
    }
    return null;
  },

  //Fxのバージョンを得る
    //Fxのバージョン
  getVer: function(){
    const Cc = Components.classes;
    const Ci = Components.interfaces;
    var info = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULAppInfo);
    var ver = parseInt(info.version.substr(0,3) * 10,10) / 10;
    return ver;
  }
};

if(!('TM_init' in window)) UndoListInTabmenu.init();
Dieses Script funktioniert im aktuellen Firefox leider nicht mehr. Kennt jemand einen Ersatz oder möchte es updaten?

Benutzeravatar
2002Andreas
Moderator
Beiträge: 38006
Registriert: Fr, 04. Jul 2008 19:25
Wohnort: Niedersachsen

Re: Button für kürzlich geschlossene Tabs

#41

Beitrag von 2002Andreas » Sa, 31. Mär 2018 16:46

Teste bitte mal.

Code: Alles auswählen

(function() {

  if (location != 'chrome://browser/content/browser.xul')
    return;

  let tabContextMenu = document.getElementById('tabContextMenu');
  let historyPopup = document.getElementById('goPopup');

  tabContextMenu.addEventListener('popupshowing', function(event) {
    if (event.target != this)
      return;
    // historyPopup.style.visibility = 'collapse';
    historyPopup.showPopup();
    document.getElementById('historyUndoPopup').showPopup();
    let dblHistoryUndoMenu = document.getElementById('historyUndoMenu').cloneNode(true);
    dblHistoryUndoMenu.id = 'context_historyUndoMenu';
    dblHistoryUndoMenu.getElementsByTagName('menupopup')[0].removeAttribute('id');
    tabContextMenu.appendChild(dblHistoryUndoMenu);
  });

  tabContextMenu.addEventListener('popuphiding', function(event) {
    if (event.target != this)
      return;
    tabContextMenu.removeChild(document.getElementById('context_historyUndoMenu'));
    // historyPopup.style.visibility = 'visible';
  });

})();
Mit freundlichem Gruß
Andreas
Mein System    Meine Add-ons

Benutzeravatar
captain chaos
Senior-Mitglied
Beiträge: 3154
Registriert: Mi, 15. Jun 2005 13:57

Re: Button für kürzlich geschlossene Tabs

#42

Beitrag von captain chaos » Sa, 31. Mär 2018 16:58

Danke, Andreas2002. Das Menü der zuletzt geschlossenen Tabs ist nun im Kontextmenü der Tableiste.
Bei Rechtsklick auf die Tableiste aktiviert sich aber auch die Menüleiste mit bereits ausgeklapptem Verlaufmenü.
Das ist etwas zuviel des Guten. ;)

Benutzeravatar
2002Andreas
Moderator
Beiträge: 38006
Registriert: Fr, 04. Jul 2008 19:25
Wohnort: Niedersachsen

Re: Button für kürzlich geschlossene Tabs

#43

Beitrag von 2002Andreas » Sa, 31. Mär 2018 17:28

captain chaos hat geschrieben:
Sa, 31. Mär 2018 16:58
Bei Rechtsklick auf die Tableiste
Sieht hier so aus: :-??
Screenshot (906).jpg
Mit freundlichem Gruß
Andreas
Mein System    Meine Add-ons

Benutzeravatar
captain chaos
Senior-Mitglied
Beiträge: 3154
Registriert: Mi, 15. Jun 2005 13:57

Re: Button für kürzlich geschlossene Tabs

#44

Beitrag von captain chaos » Sa, 31. Mär 2018 17:43

Bei Rechtsklick auf die Tabs (nicht die Leiste daneben) sieht es bei mir so aus.
Die Menüleiste habe ich eigentlich ausgeblendet, die poppt so aufgeklappt zusammen mit dem Kontextmenü auf.

Bild

Benutzeravatar
2002Andreas
Moderator
Beiträge: 38006
Registriert: Fr, 04. Jul 2008 19:25
Wohnort: Niedersachsen

Re: Button für kürzlich geschlossene Tabs

#45

Beitrag von 2002Andreas » Sa, 31. Mär 2018 17:48

captain chaos hat geschrieben:
Sa, 31. Mär 2018 17:43
Die Menüleiste habe ich eigentlich ausgeblendet
Achso, ja dann kann ich das bestätigen hier.

Ob bzw. wie man das evtl. im Script ändern kann weiß ich leider nicht :?
Mit freundlichem Gruß
Andreas
Mein System    Meine Add-ons

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste