1. Nachrichten
  2. Forum
    1. Unerledigte Themen
    2. Forenregeln
  3. Spenden
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. camp-firefox.de
  2. Endor

Beiträge von Endor

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • Endor
    • 15. September 2019 um 16:49

    Hallo milupo.

    Danke für das Testen.

    Ja Cookies anzeigen geht leider nicht mehr.

    Da warte ich immer noch auf ein Update von eigentlichen Autor.

    Obige Version ist ja vom 12.06.2019.

    Mal sehen ob und wann er das macht.

    Mfg.
    Endor

  • Fx 69 Update und meine Scripte

    • Endor
    • 15. September 2019 um 16:39

    Hallo geldhuegel

    Teste mal diese neue Version:

    Code
    // ==UserScript==
    // @name ShowSearchBarHistroryByClick.uc.js
    // @description Erstellt eine Schaltfläche zum Anzeigen der Such-Chronik am rechten Ende der Suchleiste,
    // @description oder mit Rechtsklick auf Lupensymbol in der Suchleiste anzeigen.
    // @charset UTF-8
    // @include main
    // @version 0.6.3 69a対応(createElement → createElementNS)
    // @version 0.6.2 68a対応/pref操作をこのスクリプト単独でできるように変更
    // @version 0.6.1 64a対応
    // @version 0.6 ボタンとマウスボタンをチェックするように修正
    // @version 0.5 prefの操作を追加
    // @version 0.4 「検索バー非表示→表示」で履歴表示ボタンが消えるのを修正
    // @note 履歴表示件数を上限なしにできるように変更
    // @version 0.3 UIカスタマイズをすると履歴表示ボタンが消えるのを修正
    // ==/UserScript==
    (function(){
    "use strict";
    
    
    const createButton = false
    // true = Schaltfläche am rechten Ende der Suchleiste zum Anzeigen der Suchchronik
    // false = Rechtsklick auf Lupensymbol in Suchleiste zum Anzeigen der Suchchronik
    const noLimitResult = true
    // true = unbegrenzte Anzahl der Chronik Einträge false = Standard (nur 20 Einträge anzeigen)
    const timeSeries = true
    // true Suchchronik nach Such-Reihenfolge sortieren false = Standard (in alphabetischer Reihenfolge)
    
    
    timeSeries? set_formfill() : reset_formfill();
    
    
    function set_formfill(){
    setPref('browser.formfill.bucketSize', -1);
    setPref('browser.formfill.maxTimeGroupings', -1);
    setPref('browser.formfill.timeGroupingSize', -1);
    }
    
    
    function reset_formfill(){
    clearPref('browser.formfill.bucketSize');
    clearPref('browser.formfill.maxTimeGroupings');
    clearPref('browser.formfill.timeGroupingSize');
    }
    
    
    function btnSet(){
    const XULNS = 'http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul';
    const h = document.getElementById('searchbar-history-dropmarker');
    const bar = document.getElementById('searchbar');
    const box = bar._textbox;
    const mushi = bar.querySelector('.searchbar-search-button');
    const img = 'chrome://global/skin/icons/arrow-dropdown-16.svg';
    const btn = document.createElementNS(XULNS, 'toolbarbutton');
    btn.setAttribute('image', img);
    btn.setAttribute('height', '24px');
    btn.setAttribute('class', 'toolbarbutton-1 chromeclass-toolbar-additional');
    btn.setAttribute('id', 'searchbar-history-dropmarker')
    btn.addEventListener('click', showHistory, false);
    let v = '';
    
    
    if(createButton){
    if(h) return;
    //box.appendChild(btn);
    // fix67
    bar.querySelector('.search-go-container').appendChild(btn);
    }else{
    mushi.addEventListener('click', showHistory, false);
    mushi.setAttribute('oncontextmenu', 'return(false);');
    }
    
    
    function showHistory(e){
    if(!((e.target.id == 'searchbar-history-dropmarker' && e.button == 0) || (e.target == mushi && e.button == 2))) return;
    if(box.popup.popupOpen){
    box.popup.closePopup();
    }else{
    if(box.value) v = box.value; box.value = '';
    box.showHistoryPopup();
    box.value = v;
    v = '';
    }
    }
    noLimitResult? box.popup.setAttribute('nomaxresults', 'true') : box.popup.removeAttribute('nomaxresults');
    }
    
    
    btnSet();
    window.addEventListener('aftercustomization', btnSet, false);
    BrowserSearch.searchBar.addEventListener('load', btnSet, false);
    
    
    window.addEventListener('unload', function uninit(){
    window.removeEventListener('aftercustomization', btnSet, false);
    BrowserSearch.searchBar.removeEventListener('load', btnSet, false);
    window.removeEventListener('unload', uninit , false);
    }, false);
    
    
    // Configuration erstellen
    function setPref(aPrefString, aPrefType, aValue){
    var xpPref = Services.prefs;
    try {
    switch (aPrefType){
    case 'complex':
    return xpPref.setComplexValue(aPrefString, Components.interfaces.nsIFile, aValue); break;
    case 'str':
    return xpPref.setCharPref(aPrefString, escape(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;
    }
    
    
    // Configuration entfernen
    function clearPref(aPrefString){
    Services.prefs.clearUserPref(aPrefString);
    }
    })()
    Alles anzeigen

    Mfg.

    Endor

  • Farbliche Anpassungen im Hauptmenü

    • Endor
    • 15. September 2019 um 14:38

    Hinweis:

    Habe jetzt die aktuellen Versionen in den Ordner Firefox 69 verschoben:

    https://github.com/Endor8/CSS/tree/master/Firefox%2069

    Mfg.
    Endor

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • Endor
    • 15. September 2019 um 14:09

    Hallo zusammen.

    So habe eben das ganze Script aktualisiert.

    Nun sollte alles wieder funktionieren in Firefox 69.

    https://github.com/Endor8/userChr…oxbuttons.uc.js

    Mfg.
    Endor

  • Tableiste nach unten verschoben, seit FF 69.0 wird das Suchfeld für Seite durchsuchen nicht mehr angezeigt

    • Endor
    • 14. September 2019 um 16:56

    füge mal diese Zeile in deinen CSS Code ein und teste, Wert eventuell noch anpassen.

    damit wird die findbar weiter nach oben geschoben:

    CSS
    #panel-1-7 > vbox:nth-child(1) > findbar:nth-child(4){margin-bottom: 35px !important;}

    Mfg.
    Endor

  • Farbliche Anpassungen im Hauptmenü

    • Endor
    • 13. September 2019 um 17:23

    Nur zur Info.

    Habe jetzt alle auf browser.xhtml aktualisiert.

    Es sind bei ein paar Dateien auch noch ein paar Zeilen CSS dazu gekommen.
    :wink:

    Nochmals Danke an Boersenfeger für den Hinweis.

    :klasse:

    Mfg.
    Endor

  • Noch ein paar graue Lesezeichenordner!?

    • Endor
    • 13. September 2019 um 17:19

    Hallo .DeJaVu

    Alles klar. kein Problem. Hatte ich im übrigen schon so verstanden.

    Mfg.

    Endor

  • Noch ein paar graue Lesezeichenordner!?

    • Endor
    • 13. September 2019 um 08:14

    Hallo @teko und Kerian .

    Prima freut mich wenn es passt.

    War wie immer gern geschehen.

    .DeJaVu

    Danke für den Link. Für mich war es aber wichtig das selber zu schaffen.
    Ich greife diesbezüglich nur wenn ich es wirklich nicht selber hinbekomme auf Hilfe von
    anderen zu. Trotzdem nochmals danke für den Link.

    Mfg.
    Endor

  • Noch ein paar graue Lesezeichenordner!?

    • Endor
    • 12. September 2019 um 17:09

    Teste mal:

    CSS
    @-moz-document url-prefix("chrome://browser/content/browser.xhtml") {
    treechildren::-moz-tree-image(container) {
    list-style-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAd5JREFUeNqMU79rFUEQ/vbuodFEEkzAImBpkUabFP4ldpaJhZXYm/RiZWsv/hkWFglBUyTIgyAIIfgIRjHv3r39MePM7N3LcbxAFvZ2b2bn22/mm3XMjF+HL3YW7q28YSIw8mBKoBihhhgCsoORot9d3/ywg3YowMXwNde/PzGnk2vn6PitrT+/PGeNaecg4+qNY3D43vy16A5wDDd4Aqg/ngmrjl/GoN0U5V1QquHQG3q+TPDVhVwyBffcmQGJmSVfyZk7R3SngI4JKfwDJ2+05zIg8gbiereTZRHhJ5KCMOwDFLjhoBTn2g0ghagfKeIYJDPFyibJVBtTREwq60SpYvh5++PpwatHsxSm9QRLSQpEVSd7/TYJUb49TX7gztpjjEffnoVw66+Ytovs14Yp7HaKmUXeX9rKUoMoLNW3srqI5fWn8JejrVkK0QcrkFLOgS39yoKUQe292WJ1guUHG8K2o8K00oO1BTvXoW4yasclUTgZYJY9aFNfAThX5CZRmczAV52oAPoupHhWRIUUAOoyUIlYVaAa/VbLbyiZUiyFbjQFNwiZQSGl4IDy9sO5Wrty0QLKhdZPxmgGcDo8ejn+c/6eiK9poz15Kw7Dr/vN/z6W7q++091/AQYA5mZ8GYJ9K0AAAAAASUVORK5CYII=')
    !important;}
    }

    Damit sind die Ordner da jetzt auch gelb.

    Mfg.

    Endor

  • Noch ein paar graue Lesezeichenordner!?

    • Endor
    • 12. September 2019 um 16:40

    Einen Teil habe ich glaube ich erwischt, wenn es mich aber nicht täuscht sind die Ordner bei Dir schon gelb.

    CSS
    @-moz-document url-prefix("chrome://browser/content/browser.xhtml") {
    
    .folder-icon {
    list-style-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAd5JREFUeNqMU79rFUEQ/vbuodFEEkzAImBpkUabFP4ldpaJhZXYm/RiZWsv/hkWFglBUyTIgyAIIfgIRjHv3r39MePM7N3LcbxAFvZ2b2bn22/mm3XMjF+HL3YW7q28YSIw8mBKoBihhhgCsoORot9d3/ywg3YowMXwNde/PzGnk2vn6PitrT+/PGeNaecg4+qNY3D43vy16A5wDDd4Aqg/ngmrjl/GoN0U5V1QquHQG3q+TPDVhVwyBffcmQGJmSVfyZk7R3SngI4JKfwDJ2+05zIg8gbiereTZRHhJ5KCMOwDFLjhoBTn2g0ghagfKeIYJDPFyibJVBtTREwq60SpYvh5++PpwatHsxSm9QRLSQpEVSd7/TYJUb49TX7gztpjjEffnoVw66+Ytovs14Yp7HaKmUXeX9rKUoMoLNW3srqI5fWn8JejrVkK0QcrkFLOgS39yoKUQe292WJ1guUHG8K2o8K00oO1BTvXoW4yasclUTgZYJY9aFNfAThX5CZRmczAV52oAPoupHhWRIUUAOoyUIlYVaAa/VbLbyiZUiyFbjQFNwiZQSGl4IDy9sO5Wrty0QLKhdZPxmgGcDo8ejn+c/6eiK9poz15Kw7Dr/vN/z6W7q++091/AQYA5mZ8GYJ9K0AAAAAASUVORK5CYII=')
    !important;
    -moz-image-region: rect(0px 16px 16px 0px) !important; }
    }

    Aber die unteren kriege ich nicht hin. Die kriegt man in den
    Browser Werkzeugen einfach nicht zu fassen, jedenfalls ich. :/8|
    Vielleicht hat 2002Andreas ja eine Idee.

    Siehe nächsten Beitrag.

    Mfg.
    Endor

  • Noch ein paar graue Lesezeichenordner!?

    • Endor
    • 12. September 2019 um 14:39

    Hallo teko

    Ändere Zeile 3 wieder zurück nach xul und teste,

    Also: chrome://browser/content/places/places.xhtml

    nach: chrome://browser/content/places/places.xul

    und teste.

    Mfg.
    Endor

  • Firefox 69 Anpassungen fehlerhaft trotz about:config Änderung

    • Endor
    • 10. September 2019 um 14:45

    Achso, na dann ist alles klar....

    Mfg.
    Endor

  • Firefox 69 Anpassungen fehlerhaft trotz about:config Änderung

    • Endor
    • 10. September 2019 um 14:33

    Hallo GermanFreme82

    Teste mal dieses Script, es schiebt nur die Tableiste wieder
    unter die Lesezeichenleiste.

    Code
    (function() {
    var tabbar = document.getElementById('TabsToolbar');
    if (tabbar && !tabbar.collapsed) {
    tabbar.parentNode.parentNode.appendChild(tabbar);
    };
    })();

    Speichere es als Script: TableisteUnten.uc.js im chrome Ordner.

    Mfg.
    Endor

  • FF69 UndoListInTabmenuToo funktioniert nur eingeschränkt

    • Endor
    • 9. September 2019 um 21:18

    Nur um nochmals klar zustellen, die Liste mit den geschlossenen Fenstern

    wird hier nur im Rechtsklick Kontextmenü angezeigt. Im Tabkontextmenü

    wird nur der Eintrag angezeigt aber nicht die Liste, das funktioniert aber

    schon länger nicht mehr bei diesem Script. Kann aber leider nicht sagen wieso.

    Mfg.
    Endor

  • FF69 UndoListInTabmenuToo funktioniert nur eingeschränkt

    • Endor
    • 9. September 2019 um 19:42

    Also hier unter Firefox 69 werden auch geschlossene Fenster

    einwandfrei angezeigt. Vermute mal dir haut da irgendwas dazwischen,

    anderes Script, CSS Code usw.

    Mfg.

    Endor

  • "Anpassen" und "Vorherige Sitzung wiederherstellen"

    • Endor
    • 9. September 2019 um 08:16

    Wie immer gern geschehen.

    Freut mich wenn es funktioniert.

    Mfg.

    Endor

  • FF69 UndoListInTabmenuToo funktioniert nur eingeschränkt

    • Endor
    • 9. September 2019 um 08:07

    Bitte mal diese Version testen die ist ganz aktuell:

    Code
    // ==UserScript==
    // @name UndoListInTabmenuToo
    // @namespace http://space.geocities.yahoo.co.jp/gl/alice0775
    // @description UndoListInTabmenuToo.uc.js
    // @include main
    // @compatibility Firefox 69.0
    // @author Alice0775
    // @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 ツールチップにタブ内履歴を表示するようにした
    // @Note タブやコンテキストメニューにもUndoClose Tab Listを追加するもの
    // @OriginalCode browser.jsからpopulateUndoSubmenuを拝借し, ごにょごにょした
    // @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 中クリック処理
    // @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 , //Im Tabkontextmenü: anzeigen: true, nicht anzeigen: false
    CONTEXTMENU : true, //Im Hauptkontextmenü: anzeigen: true , nicht anzeigen: false
    // -- config end--
    ss: null,
    
    
    get tabContext() {
    return document.getElementById("tabContextMenu");
    },
    
    
    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
    try {
    this._ss = Cc["@mozilla.org/browser/sessionstore;1"].
    getService(Ci.nsISessionStore);
    } catch(x) {
    this._ss = SessionStore;
    }
    
    
    },
    
    
    makePopup: function(popup, refItem, id){
    var menu;
    //label
    const locale = "de";
    
    
    if (this.getVer() > 3.0) {
    // "Recently Closed Windows"
    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);
    
    
    this.historyUndoWindowPopup3 = menu = menu.appendChild(document.createXULElement("menupopup"));
    menu.setAttribute("id", "historyUndoWindowPopup3");
    menu.setAttribute("onpopupshowing", "UndoListInTabmenu.populateUndoWindowSubmenu();");
    }
    
    
    //UndoClose Tab List - Liste kürzlich geschosener Tabs
    const LABELTEXT = locale.indexOf("ja") == -1?"K\u00FCrzlich geschlossene Tabs":"\u6700\u8fd1\u9589\u3058\u305f\u30bf\u30d6"; //create menu
    menu = document.createXULElement("menu");
    menu.setAttribute("label", LABELTEXT);
    menu.setAttribute("accesskey", "T");
    if (id)
    menu.setAttribute("id", id);
    //menu.setAttribute("disabled", true);
    var menupopup = document.createXULElement("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.createXULElement("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.createXULElement("menuseparator"));
    m = undoPopup.appendChild(document.createXULElement("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.createXULElement("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.createXULElement("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.createXULElement("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.createXULElement("menuseparator"));
    
    
    m = undoPopup.appendChild(document.createXULElement("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.createXULElement("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.createXULElement("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.createXULElement("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.createXULElement("menuseparator"));
    
    
    m = undoPopup.appendChild(document.createXULElement("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);
    },
    
    
    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.createXULElement("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.createXULElement("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.createXULElement("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) {
    // get closed-tabs from nsSessionStore
    try {
    ss = Cc["@mozilla.org/browser/sessionstore;1"].
    getService(Ci.nsISessionStore);
    } catch(x) {
    ss = SessionStore;
    }
    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.nsIFile); 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.nsIFile, 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 Version ermitteln
    //FxVersion
    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;
    }
    };
    
    
    // We should only start the redirection if the browser window has finished
    // starting up. Otherwise, we should wait until the startup is done.
    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");
    }
    Alles anzeigen

    Mfg.
    Endor

  • "Anpassen" und "Vorherige Sitzung wiederherstellen"

    • Endor
    • 8. September 2019 um 21:23

    milupo :oops:

    Hatte Dein Script gar nicht gesehen. Ist identisch mit meinem.

    Sorry.

    Mfg.
    Endor

  • "Anpassen" und "Vorherige Sitzung wiederherstellen"

    • Endor
    • 8. September 2019 um 21:19

    Also hier funktioniert es einwandfrei.

    Wegen Script Cache löschen:

    Bei geschlossenem Firefox im Profilordner den Inhalt des Ordners
    startupCache löschen.

    Mfg.
    Endor

  • "Anpassen" und "Vorherige Sitzung wiederherstellen"

    • Endor
    • 8. September 2019 um 21:14

    RestartFirefoxButtonM.uc.js bitte testen:

    Code
    // RestartFirefoxButtonM.uc.js
    // v. 0.3
    
    
    (function() {
    
    
    if (location != 'chrome://browser/content/browser.xhtml') return;
    
    
    try {
    CustomizableUI.createWidget({
    id: 'restart-button',
    type: 'custom',
    defaultArea: CustomizableUI.AREA_NAVBAR,
    onBuild: function(aDocument) {
    var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
    var props = {
    id: 'restart-button',
    class: 'toolbarbutton-1 chromeclass-toolbar-additional',
    label: 'Neustart',
    tooltiptext: 'Neustart (mit Rechts- und Mittelklick wird userChrome.js-Cache geleert)',
    style: 'list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAAAEZ0FNQQAAsY58%2B1GTAAAAIGNIUk0AAHolAACAgwAA%2Bf8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAN8SURBVHjaVJFNTBxlAIafb2Z29gd2l4VdYCkokAUt1AJplQRTrVqjUWMPPWHSCzb21IOn9qIHY2xMahoTTb00NmkUm5qAjdpUI61VaCxCpCVYixt%2ByvKzCwu7LDs7zMw3HmhM%2Bt6fJ0%2FyCp69wiOzZBCPcqSmIXg0HPHuC4R8nkLWyOXyYiIzfuVHzMIA%2BZsLtH18EApntUdhpzUSD5577nDLi%2FGWKjx%2BHVfR8HpFwNwsxTMzza%2BOXJ1%2B58Ev2sVEV%2ByEawXqxf8FllNWEQ9ePXzsqQOecIDU8jampSAVD76Al2BIIx4Dv2Nz7%2FYq%2B5%2BP8sNXE6WdAhdQlOM9rzUdaGiN8M9UjnKvQjzuA0UjV3AxDIcHywqRoEbXoVrKgyBtKXYEUvprmiN9oaoyvr9wl62NHJbtJeDzOo17YmprVzWOppLO2RRNwf1FSOzSUAXsCIR4QdP13UPfjhUde2mjuBXUjcXNEabOnJmq7Y4Nd7z1fu%2BJ%2FR2Jpgrm0jauAI8GlnSlBi4I0bO6sLBWHc9esxRdmjOZf5n%2B5CLWzCzOvsbKupBZ1xgmElUoC%2BgoKtRGQfNomoaND8P8XS%2Bby1olO7O6GHTl1DejGDOrNB%2BvpO7I%2Ba31%2FDP9Z28YUmqoqhCKcG2EYD6ZMUTojZ8WHmsqD%2BI6wnWFajugCkuuZaV%2FZS47wp99R7E3LbxPV6rtr7dV1pmyuBWs3hr7dZ380LC2tzseffvUHm86C1JC2A%2FrGcn509cn%2BPvTk9ibc1R06qL91Ms1CadF000ll9rVS2VykLzVr0lHOgtpuJ9yUFyXxqhKZjbH2nJRI9IZwyw2kXjvXV%2FIOWgaBcc2a%2BtjdVXR1J3iBDx8QUpQUJAuJJclseogxz441H5vrPO72cm0VSyVPJq27ZaHm8ST3Y0M9d9Kkr19A1A1x4VIObTGBfNrsJ5XmE9b6KqgvrOGhr1Vns2sgeNIkXiigvHf1liZuHWZYjINSEXRVLewZjN6bYmYbvN4rcDvVzFKLnOpErMLBpvbklClznyyyPDA6DjTX3wJWICr%2Bnb3ffjXSGpl5Nxnn88uh2ORUCBaHfVQU%2BsjVuGhKqJT5lFYShr8fGH4j42bH53EnJ4EtgEEPQOTzHx9mqXLl9AT9TS82RvreOmVcMTXVh4JhIr5kp3LFu6u3Lk%2ByMylQazU3ENYAvw3AFUTimFqj5i7AAAAAElFTkSuQmCC)',
    onclick: 'if (event.button == 1 || event.button == 2) { \
    event.preventDefault(); \
    Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULRuntime). \
    invalidateCachesOnRestart(); \
    }; \
    BrowserUtils.restartApplication();'
    };
    for (var p in props)
    toolbaritem.setAttribute(p, props[p]);
    return toolbaritem;
    }
    });
    } catch(e) { };
    
    
    })();
    Alles anzeigen

    Mfg.
    Endor

Unterstütze uns!

Jährlich (2025)

105,8 %

105,8% (687,41 von 650 EUR)

Jetzt spenden
  1. Kontakt
  2. Datenschutz
  3. Impressum
Community-Software: WoltLab Suite™
Mastodon