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. GermanFreme82

Beiträge von GermanFreme82

  • "bleibt auf dem Teppich"

    • GermanFreme82
    • 9. Mai 2019 um 10:51
    Zitat von Elena M


    Wenn schon keine Besserung möglich ist, dann wünsche ich Dir auf jeden Fall einen erträglichen Status, GermanFreme82!

    Vielen herzlichen Dank für dein Mitgefühl. :oops:

  • "bleibt auf dem Teppich"

    • GermanFreme82
    • 6. Mai 2019 um 19:37
    Zitat von 2002Andreas


    Was mich betrifft...nicht vielleicht, sondern ich akzeptiere sie. :wink:

    :klasse::oops:

  • Add ons wurden deaktiviert

    • GermanFreme82
    • 6. Mai 2019 um 19:35
    Zitat von 2002Andreas


    Kann doch mal passieren :wink:

    Dankeschön ! :oops:

  • "bleibt auf dem Teppich"

    • GermanFreme82
    • 6. Mai 2019 um 19:33
    Zitat von 2002Andreas


    Das hat Stil :klasse:

    Ganz ganz großes DANKE an dich !
    Es ist schön zu wissen, das du meine Entschuldigung ehrlich aufgefaßt und vielleicht sogar akzeptiert hast.

    PS: Eine Besserung wird es leider nie geben, ist bleibend und situationsabhängig ... leider. Ist kein Witz ist wirklich heftig an manchen Tagen.

  • Add ons wurden deaktiviert

    • GermanFreme82
    • 6. Mai 2019 um 19:30
    Zitat von 2002Andreas


    Steht doch auf der Seite die du selber aufrufen kannst:

    Neue Funktionen und Änderungen.

    Screenshot (330).png

    Achso ok vielen lieben DANK !
    Die hab ich ganz vergessen anzuklicken ... man bin ich ein Dummerle ;-).

  • "bleibt auf dem Teppich"

    • GermanFreme82
    • 6. Mai 2019 um 19:29

    Bei mir war am Wochenende auch Land unter.
    Erst ging mein Server in Arsch, dann wollte mein FritzBox mich nicht mehr reinlassen und dann ging Firefox nicht mehr.
    Das war nicht leicht zu verkraften, besonders nicht für mich, weil ich gesundheitlich eh auf dem letzten Loch pfiff die Tage udn dann noch sowas.

    Klar ist das Forum hier kein Platz um sich Luft zu machen, aber in der Not wußte ich mir nicht zu helfen und hab mal laut gemeckert gegen Firefox, was nicht so gut ankam bei der Community.

    Allerdings hab ich mich auch dafür entschuldigt und ich hoffe, das haben auch alle mitbekommen, die ich verschreckt habe.

  • Add ons wurden deaktiviert

    • GermanFreme82
    • 6. Mai 2019 um 19:23

    Ich habe eben gesehen das FF 66.0.4 raus ist.
    Kann mir bitte jemand kurz sagen, ob im neuen FF das Problem offiziell behoben wurde ?
    Bei mir scheint es nur zufällig gelöst zu sein durch 1 oder 2 Einstellungen (siehe Beitrag weiter oben).

  • Add ons wurden deaktiviert

    • GermanFreme82
    • 5. Mai 2019 um 11:00

    Nachdem ich mich gestern so unmöglich aufgeführt habe möchte ich nun versuchen mal etwas kosntruktives beizutragen.
    Ich habe eben 2 Dinge getan und die haben zumindest jetzt "noch" zur folge, das mein Firefox alle seine Erweiterungen zuläßt.

    1.) In den Einstellungen 3 Häkchen gesetzt (siehe Foto)
    .
    [attachment=0]2019.05.05 Bild 02.png[/attachment]
    .
    2. ) about:config => Adressleiste eingeben | "xpinstall.signatures.required" eintippen und den Wert auf "false" setzen (Doppelklick links)

    Ich bin kein Profi und ich habe keine Ahnung davon was ich damit getan habe, aber bei mir läuft Firefox 66.0.3 nun wieder "normal".

    Ich möchte an dieser Stelle nochmal ganz ganz aufrichtig dafür entschuldigen, wie ich mich gestern verhalten habe euch gegenüber und ich bitte euch darum mir zu verzeihen.

    Bilder

    • 2019.05.05 Bild 02.png
      • 25,7 kB
      • 1.086 × 286
  • Add ons wurden deaktiviert

    • GermanFreme82
    • 5. Mai 2019 um 00:56

    Kein LAden und auch nicht gewerblich is auch zu spät um zu erklären kann kaum Augen aufhaltne noch.

    Nen sorry das tut mir leid, das ich so aufgebracht war, aber wenn man vor dem NICHTS steht mit einmal und das dann so sein soll alles, dann ist man genervt. Klar hab ich Verständnis für euch und das mein Ton nicht der Beste war, aber auch ich möchte auch mal ins Bett gehen 00 Uhr, oder wie spät das grad ist. Da rauf ich mir die Haare um diese Zeit nur wiel in China ein Sack umfällt und dann Firefox Amok läuft ich kann shcon kaum die Augen noch offen halten und weiß nicht mehr ganz was ich schriebe nur das der Fehler hier affig ist oder war.

    Ich sags nochmal es tut mir leid das ich so forsch un bösartig war und ich suche keine Entschuldigung dafür es tut mir LEID !

    Ich entschuldige mich bei euch allen und bitte euch inständig um etwas Nachsicht und Vergebung.

    ich geh jetzt pennen udn hoffenltlich Morgen abend siehts dann vielliceicht besser aus.

  • Add ons wurden deaktiviert

    • GermanFreme82
    • 5. Mai 2019 um 00:07

    Was soll der Mist ich muß mit dem hier ARBEITEN !
    Wann wird der Fehler dnen behoben ab Monatg muß der LAden hier wieder laufen.
    Mir Platz langsam der KRagen mit diesen nutzlosen Mist hier wird man quasi enteignet ich will meine Addons haben basta und da macht mir kein Firefox Vorschriften soweit kommts noch.

    Bin stinksauer !!!

  • Firefox 66 anpassen Statusleiste, Tableiste etc.

    • GermanFreme82
    • 22. März 2019 um 03:47

    So ich bin jetz erstmal durch mit den ganzen Änderungen (kam eben erst dazu).
    Bis jetzt läuft alles einwandfrei udn ohne Fehler.

    So als kleiner Zusatz wäre es noch mega, wenn ich mal testweise die TAB-Lietse nach unten bringen könnte, ABER überhalb der Statusleiste, falls das geht.

    Ich DANKE dir nochmals bist echt megahilfreich gewesen bei allem !!!!!!

  • Firefox 66 anpassen Statusleiste, Tableiste etc.

    • GermanFreme82
    • 21. März 2019 um 17:45
    Zitat von 2002Andreas


    Also sind deine Probleme alle gelöst!?

    Bis auf eine winzige Kleinigkeit schon, ABER ich danke dir nochmals 1.000x für deine großartige ruhige und sachliche Hilfe ! :klasse:

    Schau mal bitte auf das Bild und sag mir bitte einmal, was das dort ist und ob man das wegmachen kann, denn die Buttons machen genau das gleich, wie die ganz oben rechts am Rand und sind somit vollkommen sinnlos an der Stelle:

    [attachment=0]2019.03.21 Bild 08.png[/attachment]

    Bilder

    • 2019.03.21 Bild 08.png
      • 272,95 kB
      • 1.920 × 351
  • Firefox 66 anpassen Statusleiste, Tableiste etc.

    • GermanFreme82
    • 21. März 2019 um 16:57

    Jetzt fehlt nur noch die Funktion "TABs schützen" für das Kontextmenü.
    Die Datei liegt im Pfad "C:\Users\VMWare-PC\AppData\Roaming\Mozilla\Firefox\Profiles\ltuhfjqd.default\chrome", aber funktioniert leider nicht, soll bedeuten, sie wird NICHT angezeigt.

    TabProtectmod.uc.js

    Code
    // ==UserScript==
    // @name           tabProtect_mod2.uc.js
    // @namespace      http://space.geocities.yahoo.co.jp/gl/alice0775
    // @description    Tab schützen
    // @include        main
    // @author         Alice0775
    // @Note           Tabulator wird nicht unterstützt
    // @Note           Beim Wechsel in den Privaten Modus über Tableiste, kann es beim
    // @Note           Speichern und Wiederherstellen der Browsersitzung Probleme geben
    // @compatibility  60
    // @version        2018/06/21 19:50 workaround regression
    // @version        2018/06/21 19:40 fix restore session if *.restore_on_demand is enabled
    // @version        2018/06/10 00:00 workaround restore session
    // @version        2018/05/23 00:00 Fixed typo(status is undeled when unprotect)
    // @version        2018/05/12 15:30 workaround restore session for all window
    // @version        2018/05/06 14:00 workaround for tab move
    // @version        2018/05/04 12:00 cleanup for 60
    // @version        2018/05/04 23:00 for 60
    // ==/UserScript==
    
    
    var tabProtect = {
      debug: function(aMsg){
              Cc["@mozilla.org/consoleservice;1"]
                .getService(Ci.nsIConsoleService)
                .logStringMessage(aMsg.toString());
      },
    
    
      sessionStore: {
        get ss() {
          try { 
            return Components.classes["@mozilla.org/browser/sessionstore;1"].
                                   getService(Components.interfaces.nsISessionStore)
          } catch(e) {
            return;
          }
        },
    
    
        getTabValue : function(aTab, aKey) {
          if (typeof SessionStore.getCustomTabValue == "function")
            return SessionStore.getCustomTabValue(aTab, aKey);
          else
            return this.ss.getTabValue(aTab, aKey);
        },
    
    
        setTabValue : function(aTab, aKey, aValue) {
          if (typeof SessionStore.setCustomTabValue == "function")
            return SessionStore.setCustomTabValue(aTab, aKey, aValue);
          else
            return this.ss.setTabValue(aTab, aKey, aValue);
    
    
        },
        deleteTabValue : function(aTab, aKey) {
          if (typeof SessionStore.deleteCustomTabValue == "function")
            return SessionStore.deleteCustomTabValue(aTab, aKey);
          else
            return this.ss.deleteTabValue(aTab, aKey);
        }
      },
    
    
      init: function(){
        this.tabContextMenu();
    
    
        //tabbrowser.xml ersetzen
        gBrowser.removeTab_org = gBrowser.removeTab;
        gBrowser.removeTab = function(aTab, aParams) {
          if (aTab.localName != "tab")
            aTab = this.selectedTab;
          if (aTab.hasAttribute("tabProtect"))
            return;
          gBrowser.removeTab_org(aTab, aParams);
        }
    
    
        // CSS Übernehmen
        var stack = document.getAnonymousElementByAttribute(
                                gBrowser.tabContainer.firstChild, "class", "tab-stack");
          var style = `
          .tab-close-button[hidden='true'] image {
            width: 0px;
          }
          .tab-icon-protect{
            margin-top: 10px; /*Notwendige Anpassung*/
            margin-left: -6px; /*Notwendige Anpassung*/
            list-style-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAQUlEQVQ4jWNgGAXDADASUvDvOsN/fPJMlLqAhRhFTJqo/H/XKXQBsoFEuQDDVnIMQPcGXJxYA3C5hiwvUOwCZAAAlRcK7m+YgB4AAAAASUVORK5CYII=');
          }
          .tab-icon-protect[hidden='true'] {
            display: none;
          }
          `;
        var sspi = document.createProcessingInstruction(
          'xml-stylesheet',
          'type="text/css" href="data:text/css,' + encodeURIComponent(style) + '"'
        );
        document.insertBefore(sspi, document.documentElement);
        sspi.getAttribute = function(name) {
        return document.documentElement.getAttribute(name);
        };
    
    
        this.restoreAll(0);
        gBrowser.tabContainer.addEventListener('TabMove', tabProtect.TabMove, false);
        gBrowser.tabContainer.addEventListener('SSTabRestoring', tabProtect.restore,false);
        window.addEventListener('unload',function(){ tabProtect.uninit();},false)
    
    
      },
    
    
      restoreAll: function(delay = 0) {
        var that = this;
        setTimeout(init, delay, 0);
        function init(i){
          if(i < gBrowser.tabs.length){
            var aTab = gBrowser.tabs[i];
            that.restoreForTab(aTab);
            i++;
            arguments.callee(i);
          }else{
          }
        }
      },
    
    
      uninit: function(){
        window.removeEventListener('unload',function(){ tabProtect.uninit();},false)
        gBrowser.tabContainer.removeEventListener('SSTabRestoring', tabProtect.restore,false);
        gBrowser.tabContainer.removeEventListener('TabMove', tabProtect.TabMove, false);
      },
    
    
    
    
      TabMove: function(aEvent){
        var aTab = aEvent.target;
        gBrowser.protectTabIcon(aTab);
      },
    
    
      tabContextMenu: function(){
        //tab context menu
        var tabContext = gBrowser.tabContainer.contextMenu;
        var menuitem = this.tabProtectMenu
                     = tabContext.appendChild(
                            document.createElement("menuitem"));
        menuitem.id = "tabProtect";
        menuitem.setAttribute("type", "checkbox");
        menuitem.setAttribute("label", "Tab schützen");
        menuitem.setAttribute("accesskey", "z");
        menuitem.setAttribute("oncommand","tabProtect.toggle(event);");
        tabContext.addEventListener('popupshowing',function(event){tabProtect.setCheckbox(event);},false);
      },
    
    
      restore: function(event){
        tabProtect.restoreAll(0);
      },
    
    
      restoreForTab: function(aTab){
        var retrievedData = this.sessionStore.getTabValue(aTab, "tabProtect") == "true";
        if(retrievedData){
          aTab.setAttribute('tabProtect',true);
          var closeButton = document.getAnonymousElementByAttribute(
                                 aTab, "anonid", "close-button");
          closeButton.setAttribute('hidden',true);
        }
        gBrowser.protectTabIcon(aTab);
      },
    
    
      toggle: function(event){
        var aTab = TabContextMenu.contextTab;
        if( !aTab || aTab.localName !='tab') return;
        gBrowser.protectTab(aTab);
      },
    
    
      toggleProtectSelectedTabs: function(){
        var tabs = MultipleTabService.getSelectedTabs();
        gBrowser.protectTab(tabs[0]);
        for (var i= 1; i < tabs.length; i++){
            gBrowser.protectTab(tabs[i]);
        }
      },
    
    
      setCheckbox: function(event){
        var menuitem = this.tabProtectMenu;
        var aTab = TabContextMenu.contextTab;
        if( !aTab || aTab.localName !='tab'){
          menuitem.setAttribute('hidden',true);
          return;
        }
        menuitem.setAttribute('hidden',false);
        if(aTab.hasAttribute('tabProtect') && aTab.getAttribute('tabProtect')){
          menuitem.setAttribute('checked', true);
        }else{
          menuitem.setAttribute('checked', false);
        }
      }
    }
    if(!('TM_init' in window)) {
      gBrowser.isProtectTab = function (aTab){
        return aTab.hasAttribute("tabProtect");
      }
    
    
      gBrowser.protectTab = function (aTab){
        if ( aTab.hasAttribute("tabProtect") ){
          aTab.removeAttribute("tabProtect");
          try {
            tabProtect.sessionStore.deleteTabValue(aTab, "tabProtect");
          } catch(e) {}
          var isProtected = false;
        } else {
          aTab.setAttribute("tabProtect", "true");
          tabProtect.sessionStore.setTabValue(aTab, "tabProtect", "true");
          var isProtected = true;
        }
        this.protectTabIcon(aTab);
        return isProtected;
      }
    
    
      gBrowser.protectTabIcon = function (aTab){
        const kXULNS =
                 "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
        var closeButton = document.getAnonymousElementByAttribute(
                        aTab, "anonid", "close-button");
        var image = document.getAnonymousElementByAttribute(
                                 aTab, "class", "tab-icon-protect");
        if ( aTab.hasAttribute("tabProtect") ){
          closeButton.setAttribute('hidden',true);
          if(!image){
            var stack = document.getAnonymousElementByAttribute(
                                   aTab, "class", "tab-stack");
            var image = document.createElementNS(kXULNS,'image');
            image.setAttribute('class','tab-icon-protect');
            image.setAttribute('left',0);
            image.setAttribute('top',0);
            if(stack) stack.appendChild(image);
          }
          aTab.setAttribute('class',aTab.getAttribute('class')+' tabProtect');
          image.removeAttribute('hidden');
        }else{
          closeButton.setAttribute('hidden',false);
          if(image){
            image.setAttribute('hidden', true);
          }
          aTab.setAttribute('class',aTab.getAttribute('class').replace(/\stabProtect/g,''));
        }
      }
    }
    
    
    if(!('TM_init' in window)) tabProtect.init();
    Alles anzeigen

    Update:

    Ich bin jetzt auf diese Website gegangen, weil ich in dem Text oben was kopiert hatte:
    Link => https://github.com/alice0775/user…tect_mod2.uc.js

    dort habe ich mir den Quellcode erneut kopiert und als "TabProtectmod.uc.js" gespeichert und es GEHT:

    Code
    // ==UserScript==
    // @name           tabProtect_mod2.uc.js
    // @namespace      http://space.geocities.yahoo.co.jp/gl/alice0775
    // @description    tabProtect
    // @include        main
    // @exclude        about:*
    // @author         Alice0775
    // @Note           タブのデタッチ非対応
    // @Note           タスクバーからprivate browsingモードに入るとtabの状態と復帰後のtabのセッション保存おかしくなる
    // @compatibility  60
    // @version        2018/09/27 10:30 fix  tab detach
    // @version        2018/09/26 07:30 support tab detach
    // @version        2018/09/25 21:30 working with tab multi selection
    // @version        2018/06/21 19:50 workaround regression
    // @version        2018/06/21 19:40 fix restore session if *.restore_on_demand is enabled
    // @version        2018/06/10 00:00 workaround restore session
    // @version        2018/05/23 00:00 Fixed typo(status is undeled when unprotect)
    // @version        2018/05/12 15:30 workaround restore session for all window
    // @version        2018/05/06 14:00 workaround for tab move
    // @version        2018/05/04 12:00 cleanup for 60
    // @version        2018/05/04 23:00 for 60
    // ==/UserScript==
    
    
    var tabProtect = {
      debug: function(aMsg){
              Cc["@mozilla.org/consoleservice;1"]
                .getService(Ci.nsIConsoleService)
                .logStringMessage(aMsg.toString());
      },
    
    
      sessionStore: {
        get ss() {
          try { 
            return Components.classes["@mozilla.org/browser/sessionstore;1"].
                                   getService(Components.interfaces.nsISessionStore)
          } catch(e) {
            return;
          }
        },
    
    
        getTabValue : function(aTab, aKey) {
          if (typeof SessionStore.getCustomTabValue == "function")
            return SessionStore.getCustomTabValue(aTab, aKey);
          else
            return this.ss.getTabValue(aTab, aKey);
        },
    
    
        setTabValue : function(aTab, aKey, aValue) {
          if (typeof SessionStore.setCustomTabValue == "function")
            return SessionStore.setCustomTabValue(aTab, aKey, aValue);
          else
            return this.ss.setTabValue(aTab, aKey, aValue);
    
    
        },
        deleteTabValue : function(aTab, aKey) {
          if (typeof SessionStore.deleteCustomTabValue == "function")
            return SessionStore.deleteCustomTabValue(aTab, aKey);
          else
            return this.ss.deleteTabValue(aTab, aKey);
        }
      },
    
    
      init: function(){
        this.tabContextMenu();
    
    
        //tabbrowser.xmlを置き換え
        gBrowser.removeTab_org = gBrowser.removeTab;
        gBrowser.removeTab = function(aTab, aParams) {
          if (aTab.localName != "tab")
            aTab = this.selectedTab;
          if (aTab.hasAttribute("tabProtect"))
            return;
          gBrowser.removeTab_org(aTab, aParams);
        }
    
    
        // CSSを適用
        var stack = document.getAnonymousElementByAttribute(
                                gBrowser.tabContainer.firstChild, "class", "tab-stack");
          var style = `
          .tab-close-button[hidden='true'] image {
            width: 0px;
          }
          .tab-icon-protect{
            margin-top: 0px; /*要調整*/
            margin-left: 0px; /*要調整*/
            list-style-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAQUlEQVQ4jWNgGAXDADASUvDvOsN/fPJMlLqAhRhFTJqo/H/XKXQBsoFEuQDDVnIMQPcGXJxYA3C5hiwvUOwCZAAAlRcK7m+YgB4AAAAASUVORK5CYII=');
          }
          .tab-icon-protect[hidden='true'] {
            display: none;
          }
          `;
        var sspi = document.createProcessingInstruction(
          'xml-stylesheet',
          'type="text/css" href="data:text/css,' + encodeURIComponent(style) + '"'
        );
        document.insertBefore(sspi, document.documentElement);
        sspi.getAttribute = function(name) {
        return document.documentElement.getAttribute(name);
        };
    
    
        this.restoreAll(0);
        gBrowser.tabContainer.addEventListener('TabMove', this, false);
        gBrowser.tabContainer.addEventListener('SSTabRestoring', this, false);
        window.addEventListener('unload', this, false)
    
    
        // detach tab
        let func =  gBrowser.swapBrowsersAndCloseOther.toString();
        if (gBrowser && !/copytabProtect/.test(func)) {
          func = func.replace(
            'let otherFindBar = aOtherTab._findBar;',
            `if (aOtherTab.hasAttribute("tabProtect")) {
               aOurTab.ownerGlobal.gBrowser.protectTab(aOurTab, true);
               /*copytabProtect*/
             }
             $&`
           );
          eval("gBrowser.swapBrowsersAndCloseOther = function " + func.replace(/^function/, ''));
        }
      },
    
    
      restoreAll: function(delay = 0) {
        var that = this;
        setTimeout(init, delay, 0);
        function init(i){
          if(i < gBrowser.tabs.length){
            var aTab = gBrowser.tabs[i];
            that.restoreForTab(aTab);
            i++;
            arguments.callee(i);
          }else{
          }
        }
      },
    
    
      uninit: function(){
        window.removeEventListener('unload', this, false)
        gBrowser.tabContainer.removeEventListener('SSTabRestoring', this, false);
        gBrowser.tabContainer.removeEventListener('TabMove', this, false);
        gBrowser.tabContainer.contextMenu.removeEventListener('popupshowing', this, false);
    
    
      },
    
    
      handleEvent: function(event) {
        switch(event.type) {
          case "unload":
            this.uninit(event);
            break;
          case "SSTabRestoring":
            this.restore(event);
            break;
          case "TabMove":
            this.TabMove(event);
            break;
          case "popupshowing":
            this.popupshowing(event);
            break;
        }
      },
    
    
      TabMove: function(aEvent){
        var aTab = aEvent.target;
        gBrowser.protectTabIcon(aTab);
      },
    
    
      tabContextMenu: function(){
        //tab context menu
        var tabContext = gBrowser.tabContainer.contextMenu;
        var menuitem = this.tabProtectMenu
                     = tabContext.appendChild(
                            document.createElement("menuitem"));
        menuitem.id = "tabProtect";
        menuitem.setAttribute("type", "checkbox");
        if (Services.appinfo.version.split(".")[0] >= 63)
          menuitem.setAttribute("label", "Protect This Tab(s)");
        else
          menuitem.setAttribute("label", "Protect This Tab");
        menuitem.setAttribute("accesskey", "P");
        menuitem.setAttribute("oncommand","tabProtect.toggle(TabContextMenu.contextTab);");
        tabContext.addEventListener('popupshowing', this, false);
      },
    
    
      popupshowing: function(event) {
        this.setCheckbox(event);
      },
    
    
      restore: function(event){
        tabProtect.restoreAll(0);
      },
    
    
      restoreForTab: function(aTab){
        var retrievedData = this.sessionStore.getTabValue(aTab, "tabProtect") == "true";
        if(retrievedData){
          aTab.setAttribute('tabProtect',true);
          var closeButton = document.getAnonymousElementByAttribute(
                                 aTab, "anonid", "close-button");
          closeButton.setAttribute('hidden',true);
        }
        gBrowser.protectTabIcon(aTab);
      },
    
    
      toggle: function(aTab){
        if (typeof gBrowser.selectedTabs != "undefined") {
          this.toggleProtectSelectedTabs(this.getSelectedTabs(aTab));
        } else {
          gBrowser.protectTab(aTab);
        }
      },
    
    
      toggleProtectSelectedTabs: function(tabs){
        if (tabs.length < 1)
          return;
        let isProtect = gBrowser.isProtectTab(tabs[0]);
        for (let tab of tabs) {
            gBrowser.protectTab(tab, !isProtect);
        }
      },
    
    
      getSelectedTabs: function(aTab){
        let contextTab = aTab;
        let selectedTabs = [contextTab];
        if (gBrowser.selectedTabs.indexOf(contextTab) < 0)
          return selectedTabs;
    
    
        for (let tab of gBrowser.selectedTabs) {
          if (contextTab != tab)
            selectedTabs.push(tab);
        }
        return selectedTabs;
      },
    
    
      setCheckbox: function(event){
        var menuitem = this.tabProtectMenu;
        var aTab = TabContextMenu.contextTab;
        if( !aTab || aTab.localName !='tab'){
          menuitem.setAttribute('hidden',true);
          return;
        }
        menuitem.setAttribute('hidden',false);
        if(aTab.hasAttribute('tabProtect') && aTab.getAttribute('tabProtect')){
          menuitem.setAttribute('checked', true);
        }else{
          menuitem.setAttribute('checked', false);
        }
      }
    }
    
    
    gBrowser.isProtectTab = function (aTab){
      return aTab.hasAttribute("tabProtect");
    }
    
    
    gBrowser.protectTab = function (aTab, state) {
      let isProtected;
      if (typeof state == "undefined") {
        if ( aTab.hasAttribute("tabProtect") ){
          state = false;
        } else {
          state = true;
        }
      }
      if (state) {
        aTab.setAttribute("tabProtect", "true");
        tabProtect.sessionStore.setTabValue(aTab, "tabProtect", "true");
        isProtected = true;
      } else {
        aTab.removeAttribute("tabProtect");
        try {
          tabProtect.sessionStore.deleteTabValue(aTab, "tabProtect");
        } catch(e) {}
        isProtected = false;
      }
      this.protectTabIcon(aTab);
      return isProtected;
    }
    
    
    gBrowser.protectTabIcon = function (aTab){
      const kXULNS =
               "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
      var closeButton = document.getAnonymousElementByAttribute(
                      aTab, "anonid", "close-button");
      var image = document.getAnonymousElementByAttribute(
                               aTab, "class", "tab-icon-protect");
      if ( aTab.hasAttribute("tabProtect") ){
        closeButton.setAttribute('hidden',true);
        if(!image){
          var stack = document.getAnonymousElementByAttribute(
                                 aTab, "class", "tab-stack");
          var image = document.createElementNS(kXULNS,'image');
          image.setAttribute('class','tab-icon-protect');
          image.setAttribute('left',0);
          image.setAttribute('top',0);
          if(stack) stack.appendChild(image);
        }
        aTab.setAttribute('class',aTab.getAttribute('class')+' tabProtect');
        image.removeAttribute('hidden');
      }else{
        closeButton.setAttribute('hidden',false);
        if(image){
          image.setAttribute('hidden', true);
        }
        aTab.setAttribute('class',aTab.getAttribute('class').replace(/\stabProtect/g,''));
      }
    }
    
    
    
    
    tabProtect.init();
    Alles anzeigen
  • Firefox 66 anpassen Statusleiste, Tableiste etc.

    • GermanFreme82
    • 21. März 2019 um 16:49
    Zitat von 2002Andreas


    Dann durchsuch mal deine Scripte, eins davon ist dafür zuständig.

    AAAAAAAAAAAAAALLLLLTER !!!!!!!!!!!!!!! :D:):shock::klasse::mrgreen::lol:

    Ich könnte dich kaputtknuddeln !
    Vielen Dank genau das hat mein Problem gelöst, denn ich hab "ffc-add-statusbar.uc.js" jetzt mal aus Spaß aus dem Ordner gehauen und siehe da, die Leiste mit allen Symbolen drinne war wieder da !!!!!

    Code
    (function() {	
    
    
    let tb = document.createElement('toolbar');
    tb.id = 'user-statusbar';
    tb.setAttribute('customizable', 'true');
    tb.setAttribute('mode', 'icons');
    tb.setAttribute('context', 'toolbar-context-menu');
    
    
    let vb  = document.createElement('vbox');
    vb.id = 'user-statusbar-vbox';
    let browserBottombox = document.getElementById('browser-bottombox');
    browserBottombox.parentNode.insertBefore(vb, browserBottombox);
    vb.appendChild(tb);
    
    
    CustomizableUI.registerArea('user-statusbar', {legacy: true});
    
    
    })();
    Alles anzeigen
  • Firefox 66 anpassen Statusleiste, Tableiste etc.

    • GermanFreme82
    • 21. März 2019 um 16:40
    Zitat von 2002Andreas


    Du hast viele Probleme :wink:

    Mach doch eins nach dem anderen.

    Ich danke dir 1.000x denn bisher war ich noch nie so weit gekommen und ohne deine Hilfe hätte ich das nicht geschafft.

    Checkliste:

    TAB-Leiste richtige Position :klasse:
    weißer Rand um TABs weg :klasse:
    Statusleiste unten vorhanden :klasse:

    Symbole in Statusleiste da :klasse:
    komische zweite Leiste unter Statusleiste gelöscht :klasse:

  • Firefox 66 anpassen Statusleiste, Tableiste etc.

    • GermanFreme82
    • 21. März 2019 um 16:28

    Ich hab erstmal ein gigantischen Problem mit den Symbolen in der Statusleiste, denn die sind nur teilweise da !
    Zum Beispiel fehlt das Symbol zu "Text Notes" => https://addons.mozilla.org/de/firefox/addon/textnotes

    Ich hab das Ding installiert ganz sicher und es ist auch aktiviert, aber das Symbol ist nicht da und ich kann das auch nicht hinzufügen, weil es in der Liste bei "anpassen" fehlt und das gleiche gilt für "No Script" und viele mehr ????


    [attachment=0]02.jpg[/attachment]

    Bilder

    • 02.jpg
      • 196,32 kB
      • 1.920 × 993
  • Firefox 66 anpassen Statusleiste, Tableiste etc.

    • GermanFreme82
    • 21. März 2019 um 16:11
    Zitat von 2002Andreas


    Dein oben gepostetes Script funktioniert einwandfrei.


    Beitrag Nr. 2, hast du das überprüft?

    Bitte nicht so schnell ich muß noch nachkommen mit probieren :D .

  • Firefox 66 anpassen Statusleiste, Tableiste etc.

    • GermanFreme82
    • 21. März 2019 um 15:54

    So ich habs nun mehrfach versucht, ABER es geht definitiv NICHT !

    Das Ergebnis ist nicht in Ordnung, denn die Statusleiste ist gesperrt, was verhindert das man dort was einfügen kann.
    Die TABs sind über der "Adressleiste" und nicht wie gewünscht unter der "Lezeichen Symbolleiste" und haben einen hässliches weißen Rand, den ich nicht möchte. Außerdem fehlt die Funktion "TABs schützen" im Kontextmenü auf einem TAB.

    benötige Hilfe für:
    Ich bräuchte somit dringend Hilfe um die TABs an die richtige Stelle zu bekommen,
    den abartigen weißen Rand um die TABs zu entfernen,
    die Statusleiste wieder benutzbar zu machen und
    die TAB schützen Funktion fehlt und muß wider verfügbar sein.


    [attachment=2]Zwischenablage01.jpg[/attachment]

    [attachment=1]Zwischenablage02.jpg[/attachment]

    [attachment=0]Zwischenablage03.jpg[/attachment]

    Bilder

    • Zwischenablage03.jpg
      • 45,79 kB
      • 550 × 463
    • Zwischenablage02.jpg
      • 45,85 kB
      • 633 × 383
    • Zwischenablage01.jpg
      • 158,13 kB
      • 1.920 × 993
  • Firefox 66 anpassen Statusleiste, Tableiste etc.

    • GermanFreme82
    • 20. März 2019 um 12:55

    Hallo liebe Community !

    Ich brauch bitte dringend einmal eure Hilfe, denn ich bekomme meinen Firefox einfahc nicht wieder so hin, wie er im FF 64 war. Vieles habe ich bereits versucht, doch irgendwie ist da echt der Wurm drinn und ich bin am verzweifeln.

    Ich möchte gerne das mein Firefox genau so wieder aussieht wie auf den folgenden Bildern und bitte euch daher um Hilfe:

    [attachment=4]2019.03.20 Bild 01.png[/attachment]

    [attachment=3]Zwischenablage02.jpg[/attachment]

    Bitte gebt mir eine genaue Anleitung dazu, was ich wo reinschreiben muß und wo die Datei dazu liegen muß (Pfad), damit ich nur die benötigten Scripte und Ordner habe im Firefox 66. Damit meine ich sowas wie:

    kopiere bitte Datei ... in den Pfad sowieso und schreibe XXX in diese Datei rein
    lösche bitte Datei ... aus dem Pfad sowieso
    kopiere bitte Inhalt ... aus Datei ... und schreibe diesen Inhalt dann stattdessen in Datei ... rein


    Ich bitte euch helft mir BITTE denn ich möchte auch endlich ein funktionierendes Update von FF 66 hier haben und nicht dieses Unding hier.

    Aktuell hab ich noch ALLE Scripte und Vorbereitungen vom Firefox 64 drinne inkl. der Ordner und das sieht dann genau so aus bei mir:

    [attachment=2]2019.03.20 Bild 07.png[/attachment]

    [attachment=1]2019.03.20 Bild 08.png[/attachment]

    [attachment=0]2019.03.20 Bild 09.png[/attachment]

    Das Ergebnis ist grauenhaft, denn die TAB-Leiste ist immer da mit so abartigen weißen Rändern um die TAbs, die ich nicht brauch und die ganze Statusleiste ist weg.

    Der Inhalt der Scripte lauten wie folgt (diese "ffc-" Scripte kopiere ich dann einfach rein daher nicht erwähnt):

    userChrome.css

    CSS
    @import url('css/ffc-styles.css');
    #context-openlink,
    #context-openlinkprivate,
    #context-bookmarklink,
    #context-sendlinktodevice,
    #context-inspect,
    #context-openlinkinusercontext-menu,
    #context-viewpartialsource-selection,
    #context-sep-sendlinktodevice,
    #inspect-separator,
    #_lympha-menuitem-_lympha-ctx-btn{
    	display:none!important;
    }
    #contentAreaContextMenu > menuseparator:nth-child(93){
    	display:none!important;
    }
    #jid1-kdtticj6wxvafa_jetpack-menuitem-_sss{
    	-moz-box-ordinal-group: 100 !important;
    }
    #context-sendpagetodevice,
    #context-viewbgimage,
    #context-selectall,
    #context-viewsource,
    #context-sep-sendpagetodevice,
    #context-sep-viewbgimage,
    #contentAreaContextMenu > menuseparator:nth-child(93){
    	display:none!important;
    }
    #context-sendimage,
    #context-setDesktopBackground,
    #inspect-separator{
    	display:none!important;
    }
    Alles anzeigen

    userContent.css

    Code
    LEER

    userChrome.js

    Code
    // userChrome.js
    userChrome.ignoreCache = true;
    userChrome.import("*", "UChrm");

    LoadingBarGrün.uc.js

    CSS
    /* LoadingBar.uc.js */
    
    
    (function(){
    //Location Bar Enhancer5.1;Loading Bar0.3.0
    	var cssStr = (function(){/*
    			#urlbar {
    				background-image: -moz-repeating-linear-gradient(top, rgba(255,255,255,0), rgba(255,255,255,0) 12px, rgba(255,255,255,1) 12px, rgba(255,255,255,1) 12px), -moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(74,250,30,.7) 100%);
    				background-size:0 0;
    				background-repeat:repeat-x, no-repeat;
    				transition: background-size 350ms ease 0s !important;
    			}
    			#urlbar:not([style="background-size: 0% 100%;"]) {
    				animation: progress-bar-stripes 2s linear infinite;
    			}
    			@-moz-keyframes progress-bar-stripes {
    				from {
    					background-position: 0, 0;
    				}
    				to {
    					background-position: 51px 0, 0;
    				}
    			}
    	*/}).toString().replace(/^.+\s|.+$/,"");
    
    	var style = document.createProcessingInstruction("xml-stylesheet", "type=\"text/css\"" + " href=\"data:text/css;base64," + btoa(cssStr) + "\"");
    	var mainW = document.getElementById("main-window");
    	document.insertBefore(style, mainW);
    
    
    	function main(window) {
    	  var {document, gBrowser} = window;
    	  function $(id) { return document.getElementById(id) };
    	  var urlbar = $("urlbar");
    	  let pageProgress = 0;
    	  let async = makeWindowHelpers(window).async;
    	  var LoadingBar = {
    		listener: {
    		  onChangeTab: function(e) {
    			urlbar.style.backgroundSize = '0% 100%';
    			pageProgress = 0;
    		  },
    		  onProgressChange: function(aBrowser,webProgress,request,curSelfProgress,maxSelfProgress,curTotalProgress,maxTotalProgress) {
    			if (gBrowser.contentDocument === aBrowser.contentDocument) {
    				var val = (curTotalProgress-1)/(maxTotalProgress-1);
    				pageProgress = val;
    				urlbar.style.backgroundSize = (100*val) + '% 100%';
    				if (val > 0.9)
    				  async(function() {
    					if (pageProgress > 0.95)
    						urlbar.style.backgroundSize = '100% 100%';
    				}, 1000);
    			}
    		  },
    		  onStateChange: function() {
    			if (pageProgress > 0.95){
    				async(function() {
    					urlbar.style.backgroundSize = '0% 100%';
    					pageProgress = 0;
    				}, 1000);
    			}else{
    				urlbar.style.backgroundSize = '0% 100%';
    			}
    		  }
    		}
    	  };
    
    
    	  gBrowser.tabContainer.addEventListener('TabSelect',LoadingBar.listener.onChangeTab,false);
    	  gBrowser.addTabsProgressListener(LoadingBar.listener);
    
    
    	  unload(function() {
    		gBrowser.tabContainer.removeEventListener('TabSelect',LoadingBar.listener.onChangeTab,false);
    
    
    		gBrowser.removeTabsProgressListener(LoadingBar.listener);
    	  }, window);
    	}
    
    
    
    
    
    
    	watchWindows(main, "navigator:browser");
    
    
    	function runOnLoad(window, callback, winType) {
    	  window.addEventListener("load", function() {
    		window.removeEventListener("load", arguments.callee, false);
    
    
    		if (window.document.documentElement.getAttribute("windowtype") == winType)
    		  callback(window);
    	  }, false);
    	}
    
    
    	function runOnWindows(callback, winType) {
    	  function watcher(window) {
    		try {
    		  callback(window);
    		}
    		catch(ex) {}
    	  }
    
    
    	  let browserWindows = Services.wm.getEnumerator(winType);
    	  while (browserWindows.hasMoreElements()) {
    		let browserWindow = browserWindows.getNext();
    		if (browserWindow.document.readyState == "complete")
    		  watcher(browserWindow);
    		else
    		  runOnLoad(browserWindow, watcher, winType);
    	  }
    	}
    
    
    	function watchWindows(callback, winType) {
    	  function watcher(window) {
    		try {
    		  callback(window);
    		}
    		catch(ex) {}
    	  }
    
    
    	  runOnWindows(callback, winType);
    
    
    	  function windowWatcher(subject, topic) {
    		if (topic == "domwindowopened")
    		  runOnLoad(subject, watcher, winType);
    	  }
    	  Services.ww.registerNotification(windowWatcher);
    
    
    	  unload(function() { Services.ww.unregisterNotification(windowWatcher) });
    	}
    
    
    	function unload(callback, container) {
    	  let unloaders = unload.unloaders;
    	  if (unloaders == null)
    		unloaders = unload.unloaders = [];
    
    
    	  if (callback == null) {
    		unloaders.slice().forEach(function(unloader) { unloader() });
    		unloaders.length = 0;
    		return null;
    	  }
    
    
    	  if (container != null) {
    		container.addEventListener("unload", removeUnloader, false);
    
    
    		let origCallback = callback;
    		callback = function() {
    		  container.removeEventListener("unload", removeUnloader, false);
    		  origCallback();
    		}
    	  }
    
    
    	  function unloader() {
    		try {
    		  callback();
    		}
    		catch(ex) {}
    	  }
    	  unloaders.push(unloader);
    
    
    
    
    	function removeUnloader() {
    		let index = unloaders.indexOf(unloader);
    		if (index != -1)
    		  unloaders.splice(index, 1);
    	  }
    	  return removeUnloader;
    	}
    
    	function makeWindowHelpers(window) {
    	  let {clearTimeout, setTimeout} = window;
    
    
    	  function async(callback, delay) {
    		delay = delay || 0;
    		let timer = setTimeout(function() {
    		  stopTimer();
    		  callback();
    		}, delay);
    
    
    		function stopTimer() {
    		  if (timer == null)
    			return;
    		  clearTimeout(timer);
    		  timer = null;
    		}
    	  }
    
    
    	  return {
    		async: async,
    	  };
    	}
    
    
    })();
    Alles anzeigen

    TabProtect_mod.uc.js

    Code
    // ==UserScript==
    // @name           tabProtect_mod2.uc.js
    // @namespace      http://space.geocities.yahoo.co.jp/gl/alice0775
    // @description    Tab schützen
    // @include        main
    // @author         Alice0775
    // @Note           Tabulator wird nicht unterstützt
    // @Note           Beim Wechsel in den Privaten Modus über Tableiste, kann es beim
    // @Note           Speichern und Wiederherstellen der Browsersitzung Probleme geben
    // @compatibility  60
    // @version        2018/06/21 19:50 workaround regression
    // @version        2018/06/21 19:40 fix restore session if *.restore_on_demand is enabled
    // @version        2018/06/10 00:00 workaround restore session
    // @version        2018/05/23 00:00 Fixed typo(status is undeled when unprotect)
    // @version        2018/05/12 15:30 workaround restore session for all window
    // @version        2018/05/06 14:00 workaround for tab move
    // @version        2018/05/04 12:00 cleanup for 60
    // @version        2018/05/04 23:00 for 60
    // ==/UserScript==
    
    
    var tabProtect = {
      debug: function(aMsg){
              Cc["@mozilla.org/consoleservice;1"]
                .getService(Ci.nsIConsoleService)
                .logStringMessage(aMsg.toString());
      },
    
    
      sessionStore: {
        get ss() {
          try { 
            return Components.classes["@mozilla.org/browser/sessionstore;1"].
                                   getService(Components.interfaces.nsISessionStore)
          } catch(e) {
            return;
          }
        },
    
    
        getTabValue : function(aTab, aKey) {
          if (typeof SessionStore.getCustomTabValue == "function")
            return SessionStore.getCustomTabValue(aTab, aKey);
          else
            return this.ss.getTabValue(aTab, aKey);
        },
    
    
        setTabValue : function(aTab, aKey, aValue) {
          if (typeof SessionStore.setCustomTabValue == "function")
            return SessionStore.setCustomTabValue(aTab, aKey, aValue);
          else
            return this.ss.setTabValue(aTab, aKey, aValue);
    
    
        },
        deleteTabValue : function(aTab, aKey) {
          if (typeof SessionStore.deleteCustomTabValue == "function")
            return SessionStore.deleteCustomTabValue(aTab, aKey);
          else
            return this.ss.deleteTabValue(aTab, aKey);
        }
      },
    
    
      init: function(){
        this.tabContextMenu();
    
    
        //tabbrowser.xml ersetzen
        gBrowser.removeTab_org = gBrowser.removeTab;
        gBrowser.removeTab = function(aTab, aParams) {
          if (aTab.localName != "tab")
            aTab = this.selectedTab;
          if (aTab.hasAttribute("tabProtect"))
            return;
          gBrowser.removeTab_org(aTab, aParams);
        }
    
    
        // CSS Übernehmen
        var stack = document.getAnonymousElementByAttribute(
                                gBrowser.tabContainer.firstChild, "class", "tab-stack");
          var style = `
          .tab-close-button[hidden='true'] image {
            width: 0px;
          }
          .tab-icon-protect{
            margin-top: 10px; /*Notwendige Anpassung*/
            margin-left: -6px; /*Notwendige Anpassung*/
            list-style-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAQUlEQVQ4jWNgGAXDADASUvDvOsN/fPJMlLqAhRhFTJqo/H/XKXQBsoFEuQDDVnIMQPcGXJxYA3C5hiwvUOwCZAAAlRcK7m+YgB4AAAAASUVORK5CYII=');
          }
          .tab-icon-protect[hidden='true'] {
            display: none;
          }
          `;
        var sspi = document.createProcessingInstruction(
          'xml-stylesheet',
          'type="text/css" href="data:text/css,' + encodeURIComponent(style) + '"'
        );
        document.insertBefore(sspi, document.documentElement);
        sspi.getAttribute = function(name) {
        return document.documentElement.getAttribute(name);
        };
    
    
        this.restoreAll(0);
        gBrowser.tabContainer.addEventListener('TabMove', tabProtect.TabMove, false);
        gBrowser.tabContainer.addEventListener('SSTabRestoring', tabProtect.restore,false);
        window.addEventListener('unload',function(){ tabProtect.uninit();},false)
    
    
      },
    
    
      restoreAll: function(delay = 0) {
        var that = this;
        setTimeout(init, delay, 0);
        function init(i){
          if(i < gBrowser.tabs.length){
            var aTab = gBrowser.tabs[i];
            that.restoreForTab(aTab);
            i++;
            arguments.callee(i);
          }else{
          }
        }
      },
    
    
      uninit: function(){
        window.removeEventListener('unload',function(){ tabProtect.uninit();},false)
        gBrowser.tabContainer.removeEventListener('SSTabRestoring', tabProtect.restore,false);
        gBrowser.tabContainer.removeEventListener('TabMove', tabProtect.TabMove, false);
      },
    
    
    
    
      TabMove: function(aEvent){
        var aTab = aEvent.target;
        gBrowser.protectTabIcon(aTab);
      },
    
    
      tabContextMenu: function(){
        //tab context menu
        var tabContext = gBrowser.tabContainer.contextMenu;
        var menuitem = this.tabProtectMenu
                     = tabContext.appendChild(
                            document.createElement("menuitem"));
        menuitem.id = "tabProtect";
        menuitem.setAttribute("type", "checkbox");
        menuitem.setAttribute("label", "Tab schützen");
        menuitem.setAttribute("accesskey", "z");
        menuitem.setAttribute("oncommand","tabProtect.toggle(event);");
        tabContext.addEventListener('popupshowing',function(event){tabProtect.setCheckbox(event);},false);
      },
    
    
      restore: function(event){
        tabProtect.restoreAll(0);
      },
    
    
      restoreForTab: function(aTab){
        var retrievedData = this.sessionStore.getTabValue(aTab, "tabProtect") == "true";
        if(retrievedData){
          aTab.setAttribute('tabProtect',true);
          var closeButton = document.getAnonymousElementByAttribute(
                                 aTab, "anonid", "close-button");
          closeButton.setAttribute('hidden',true);
        }
        gBrowser.protectTabIcon(aTab);
      },
    
    
      toggle: function(event){
        var aTab = TabContextMenu.contextTab;
        if( !aTab || aTab.localName !='tab') return;
        gBrowser.protectTab(aTab);
      },
    
    
      toggleProtectSelectedTabs: function(){
        var tabs = MultipleTabService.getSelectedTabs();
        gBrowser.protectTab(tabs[0]);
        for (var i= 1; i < tabs.length; i++){
            gBrowser.protectTab(tabs[i]);
        }
      },
    
    
      setCheckbox: function(event){
        var menuitem = this.tabProtectMenu;
        var aTab = TabContextMenu.contextTab;
        if( !aTab || aTab.localName !='tab'){
          menuitem.setAttribute('hidden',true);
          return;
        }
        menuitem.setAttribute('hidden',false);
        if(aTab.hasAttribute('tabProtect') && aTab.getAttribute('tabProtect')){
          menuitem.setAttribute('checked', true);
        }else{
          menuitem.setAttribute('checked', false);
        }
      }
    }
    if(!('TM_init' in window)) {
      gBrowser.isProtectTab = function (aTab){
        return aTab.hasAttribute("tabProtect");
      }
    
    
      gBrowser.protectTab = function (aTab){
        if ( aTab.hasAttribute("tabProtect") ){
          aTab.removeAttribute("tabProtect");
          try {
            tabProtect.sessionStore.deleteTabValue(aTab, "tabProtect");
          } catch(e) {}
          var isProtected = false;
        } else {
          aTab.setAttribute("tabProtect", "true");
          tabProtect.sessionStore.setTabValue(aTab, "tabProtect", "true");
          var isProtected = true;
        }
        this.protectTabIcon(aTab);
        return isProtected;
      }
    
    
      gBrowser.protectTabIcon = function (aTab){
        const kXULNS =
                 "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
        var closeButton = document.getAnonymousElementByAttribute(
                        aTab, "anonid", "close-button");
        var image = document.getAnonymousElementByAttribute(
                                 aTab, "class", "tab-icon-protect");
        if ( aTab.hasAttribute("tabProtect") ){
          closeButton.setAttribute('hidden',true);
          if(!image){
            var stack = document.getAnonymousElementByAttribute(
                                   aTab, "class", "tab-stack");
            var image = document.createElementNS(kXULNS,'image');
            image.setAttribute('class','tab-icon-protect');
            image.setAttribute('left',0);
            image.setAttribute('top',0);
            if(stack) stack.appendChild(image);
          }
          aTab.setAttribute('class',aTab.getAttribute('class')+' tabProtect');
          image.removeAttribute('hidden');
        }else{
          closeButton.setAttribute('hidden',false);
          if(image){
            image.setAttribute('hidden', true);
          }
          aTab.setAttribute('class',aTab.getAttribute('class').replace(/\stabProtect/g,''));
        }
      }
    }
    
    
    if(!('TM_init' in window)) tabProtect.init();
    Alles anzeigen

    HideTabbarWithOneTab.uc.js

    Code
    //  HideTabbarWithOneTab.uc.js
    //  v. 0.2
    
    
    (function() {
      if (!window.gBrowser)
        return;
      let tabbar = document.getElementById("TabsToolbar");
      function showHideTabbar() {
        tabbar.collapsed = (gBrowser.visibleTabs.length == 1);
      };
      setTimeout(function() {
        showHideTabbar();
      }, 0);
      let observer = new MutationObserver(showHideTabbar);
      observer.observe(document.getElementById("tabbrowser-tabs"), {childList: true});
    })();
    Alles anzeigen

    Bilder

    • 2019.03.20 Bild 09.png
      • 14,49 kB
      • 711 × 326
    • 2019.03.20 Bild 08.png
      • 32,62 kB
      • 691 × 358
    • 2019.03.20 Bild 07.png
      • 41,15 kB
      • 610 × 713
    • Zwischenablage02.jpg
      • 162,84 kB
      • 1.920 × 1.048
    • 2019.03.20 Bild 01.png
      • 236,68 kB
      • 1.920 × 1.049
  • Statusleiste

    • GermanFreme82
    • 20. März 2019 um 12:02

    Kann bitte jemand einmal einen vollständigen und aktuellen Code reinposten, wie ich die Statusleiste wieder unten hinbekomme UND dazu schreiben, wo der genau reingeschrieben werden muß ?

Unterstütze uns!

Jährlich (2025)

101,9 %

101,9% (662,48 von 650 EUR)

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