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

Beiträge von bananovic

  • So gab ich Tabs wieder senkrechte Trennlinien

    • bananovic
    • 7. Juni 2021 um 12:55

    andreas, nicht ganz so habe ich mir das vorgestellt. Das Zeichen "senkrechter Strich" von der Tastatur läßt sich in der Höhe (= Länge) nicht verändern, nur in seiner Position. Es ist mir in der Höhe zu klein. Der rechte Rand (border-right) bildet mit dem senkrechten Strich einen Doppelstrich, den man nur durch eine entsprechende Dicke auflösen kann. Dann gehen beide Striche ineinander über. Einen so dicken Trennstrich zwischen den Tabs möchte ich aber nicht haben. Ich hätte gerne den einen dünnen Trennstrich wie es ihn bis zu Firefox 88 gab.

    Auch den blauen oberen Rand bei einem ausgewählten Tab hätte ich gerne wieder.

    Ich weiß nicht, ob das machbar ist.

    Erwähnen möchte ich noch, daß ich die Höhe der Tabs und Tableiste auf das bisherige Maß reduziert habe. In FF 89 sind mir die Tabs zu hoch.

  • So gab ich Tabs wieder senkrechte Trennlinien

    • bananovic
    • 6. Juni 2021 um 18:07
    Zitat von uwe_p

    ... hab ich vertikale Trennlinien zwischen Tabs wieder hergestellt.

    ...

    Die CSS-Zeile dazu war:

    CSS
    .tabbrowser-tab { border-right: 1px solid #81FBE4 !important; padding: 0 !important }

    Die vertikale Trennlinie ist jetzt wieder da. Aber sie ist viel zu hoch, sie ragt über den oberen Rand der Tabs hinaus. Wie verringere ich die Höhe der Linie?

    Wie kann ich erreichen, daß die Trennlinie nicht am unteren Rand des Tabs beginnt, sondern zwischen dem unteren Rand und dem unteren Beginn der Trennlinie noch ein kleiner Zwischenraum ist, so wie es bisher war?

  • Textmerker Go funktioniert nicht in Firefox 84.0.2

    • bananovic
    • 21. Januar 2021 um 17:07

    Es tut sich garnichts. Im Kontextmenü befindet sich kein Eintrag mehr. Wenn ich oben den Button anklicke und eine Farbe auswähle, ist ebenfalls tote Hose. Auch deaktivieren und erneut aktivieren der Erweiterung ändert nichts. In den Einstellungen ist der erste Radiobutton ausgewählt. In den Berechtigungen ist der Haken vor Auf Ihre Daten für alle Websites zugreifen gesetzt.

    Update: Nachdem ich jetzt Textmarker Go nochmals aktiviert habe, ist plötzlich der Eintrag im Kontextmenü wieder vorhanden und ich kann Texte farblich markieren. Sehr Merkwürdig.

  • Textmerker Go funktioniert nicht in Firefox 84.0.2

    • bananovic
    • 21. Januar 2021 um 15:50

    Kann jemand bestätigen, daß Textmarker Go 0.9 jetzt nicht mehr in Firefox funktioniert? Textmarker 5.3.1 funktioniert ebenfalls nicht. Laut Website sollen diese Versionen für Firefox 57.0 und höher funktionieren.

  • Anpassungen mit Scripten funktioniert nicht mehr

    • bananovic
    • 2. Dezember 2020 um 19:43
    Zitat von nierewa

    Die Scripte funktionieren nicht, wenn das Profil nicht unter AppData\Roaming\Mozilla\Firefox\Profiles liegt.

    Du kannst dein Profil durchaus an einem beliebigen Ort einrichten. Du mußt nur in AppData\Mozilla\Firefox die Datei profiles.ini plazieren, in welcher der Pfad des Profils eingetragen ist. Die profiles.ini erhältst du, wenn du Firefox mit firefox.exe -p startest und dort ein neues Profil am gewünschten Ort erstellst. Zweckmäßigerweise sollte man diese Datei an einem sicheren Ort speichern, so daß man sie bei einer Neuinstallation oder wenn sonstwie erforderlich einfach in den Ordner AppData\Mozilla\Firefox kopiert.

    Ich habe meine Programme, auch Firefox, grundsätzlich in Laufwerk D: installiert und meine Daten, auch das Firefox-Profil, in Laufwerk E:.

  • Firefox 81: RestartFirefox.uc.js funktioniert nicht

    • bananovic
    • 25. September 2020 um 16:41

    Das Script in Post 34 enthält in der Tat auch einen Eintrag im Hamburger-Menü, den es bei mir nicht gibt. Wohl deshalb funktioniert bei mir das Script RestartFirefox_plus.uc.js in FF 81 ungehindert, nachdem ich nach meinem Post upgedatet habe. Ich wußte garnicht, daß es von dem Restart-Script so viele Varianten gibt. Zur Vervollständigung hier das von mir verwendete Script:

    JavaScript
    //      RestartFirefox_plus.uc.js   
    
        (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',
                       removable: false,
                       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) { };   
           
           var menuitem = document.createXULElement('menuitem');   
           var props = {
              id: 'restartfirefox-fileMenu2',
              label: 'Neustart',
              tooltiptext: 'Neustart (mit Rechts- und Mittelklick wird userChrome.js-Cache geleert)',
              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)
              menuitem.setAttribute(p, props[p]);      
           document.getElementById('menu_FilePopup').insertBefore(menuitem, document.getElementById('menu_FileQuitItem'));
    
           var pane1 = document.getElementById('appmenuPrimaryPane');   
           if (pane1) {   
              menuitem = document.createXULElement('menuitem');   
              var props = {
                 id: 'restartfirefox-fileMenu',
                 class: 'menuitem-iconic',
                 label: 'Neustart',
                 tooltiptext: 'Neustart (mit Rechts- und Mittelklick wird userChrome.js-Cache geleert)',
                 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)
                 menuitem.setAttribute(p, props[p]);
              pane1.insertBefore(menuitem, document.getElementById('appmenu-quit'));
           };
    
    })();
    Alles anzeigen
  • Firefox 81: RestartFirefox.uc.js funktioniert nicht

    • bananovic
    • 25. September 2020 um 14:23

    Das sind jetzt alles Lösungsvorschläge für Restart im Hamburger-Menü, soweit ich das überblicke. Die Ausgangsfrage von @teko war aber, ob es eine Lösung für das in FF 81 nicht mehr funktionierende Script RestartFirefox.uc.js gibt. Da auch ich dieses Script benutze und nicht das Hamburger-Menü, wäre ich für eine Antwort hierzu dankbar.

  • Tab Toolbar verstecken wenn nur ein Tab vorhanden

    • bananovic
    • 7. August 2020 um 17:51

    Das macht bei mir das Script HideTabbarWithOneTabv10.uc.js

    Hier der Code:

    Code
    //    HideTabbarWithOneTab.uc.js
    //    v. 0.1
    
    Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefService).setBoolPref("browser.tabs.drawInTitlebar", false);
    var tabbar = document.getElementById("TabsToolbar");    
    function showHideTabbar (mutations) {
        tabbar.collapsed = (gBrowser.visibleTabs.length == 1);
    };            
    showHideTabbar();                        
    var observer = new MutationObserver(showHideTabbar);        
    observer.observe(document.querySelector('#tabbrowser-tabs'), {attributes: true});
    Alles anzeigen
  • Symbole zu Kontextmenüs mit Javascript und CSS hinzufügen

    • bananovic
    • 3. Juli 2020 um 13:57

    Danke bege. Dein Code funktioniert bei mir nun auch in Thunderbird. Die URLs mußte ich aber auf absolute Pfade ändern und ich mußte "file://" davor setzen. Das sieht so aus:

    background-image url('file://E:/Thunderbird/chrome/icons/Bild5.png');

    Zeile 7 Deines Codes ist jedenfalls bei mir nicht erforderlich. Ich habe die Zeile deaktiviert und es funktioniert auch ohne.

  • Symbole zu Kontextmenüs mit Javascript und CSS hinzufügen

    • bananovic
    • 2. Juli 2020 um 19:17
    Zitat von Endor

    Welche Thunderbird Version?

    Version 68.10.0 (64bit)

  • Symbole zu Kontextmenüs mit Javascript und CSS hinzufügen

    • bananovic
    • 2. Juli 2020 um 13:23

    Endor, Dein Post #11: Kontextmenü von Sternschaltfläche in aboutaddons

    Für Firefox habe ich Deinen css-Code zum Laufen gebracht, nicht aber für Thunderbird. Was muß da geändert werden?

  • Firefox 76 - openbookModokiFor40.uc.js

    • bananovic
    • 10. Mai 2020 um 19:47

    Ich habe mit WinMerge festgestellt, daß mein Script den gleichen Code hat wie das von @Donaldinho. Bei mir öffnet sich die Lesezeichenliste automatisch, wenn ich im Kontextmenü auf den Stern klicke.

    Ich habe ein bißchen experimentiert. Zunächst habe ich alle Scripts aus dem Ordner chrome entfernt, ausgenommen openbookModoki.uc.js. Ergebnis: Die Liste öffnet sich automatisch. An anderen von mir benutzten Scripts liegt es also nicht. Dann habe ich auch openbookModoki.uc.js entfernt. Ergebnis wie bei Euch: Die Liste öffnet sich nicht automatisch. Das änderte sich wieder, als openbookModoki.uc.js wieder im Ordner chrome war.

    Schließlich habe ich die userChrome.css aus dem Ordner chrome entfernt. Ergebnis: Die Liste öffnete sich automatisch, ohne meinen Eintrag über die Mindesthöhe aber nur in etwa halber Höhe. Das zu meiner Überraschung aber nur beim ersten Mal, daß ich auf den Stern geklickt habe. Beim zweiten Mal und den folgenden Malen war die Liste wieder in voller Höhe sichtbar. An den Einträgen in der userCrome.css kann es also auch nicht liegen.

    Ich bin ratlos, warum bei Euch die Liste nicht automatisch aufklappt. Intressant wäre, zu erfahren, ob es jemanden gibt, bei dem die Liste automatisch aufklappt.

    Habt Ihr auch den Haken vor "Eigenschaften beim Speichern bearbeiten" gesetzt?

  • Firefox 76 - openbookModokiFor40.uc.js

    • bananovic
    • 10. Mai 2020 um 11:28

    Hier meine Version des Scripts:

    Code
    // ==UserScript==
    // @name           openbookModokiFor40.uc.js
    // @namespace      https://addons.mozilla.org/firefox/addon/3885
    // @description    Lesezeichen Bearbeiten Panel: Veränderbare Panelgröße hinzugefügt. Schlüsselwort und Ordner-Struktur  
    // @description    Felder sind geschlossen. Weitere Einstellungen:  Beschreibung, Ordner, Dieses Lesezeichen in der Sidebar laden,
    // @description    und Schlüsselwort können ein-/ausgeblendet werden.
    // @include        main
    // @author         Alice0775
    // @version        2018/03/15 10:30 Fx59 by aborix
    // @version        2017/11/17 02:30 Fx57
    // @version        2016/03/20 02:30 remove tst hack
    // ==/UserScript==
    // @version        2015/08/31 02:30 Fx40
    // @version        2013/07/07 02:30 fix onFolderMenuListCommand
    // @version        2012/12/08 22:30 Bug 788290 Bug 788293 Remove E4X 
    // @version        2012/07/24 14:30 Bug 761723 implement toString of function objects by saving source
    // @version        2010/12/06 10:30 Bug Bug 597557 - Bookmarks & Identity panels should use an Arrowpanel
    // @version        2010/04/01 00:00 Bug 556342  - Invalid Treeview in bookmark menu via star pane
    // @version        2009/12/22 00:00 namePicker in front
    // @version        2009/12/21 14:00 BETTER WORKAROUND FIX  Bug 536024 -  When i expand folder-tree on Edit This Bookmark, the bookmarked folder is changed.
    // @version        2009/12/20 16:00 WORKAROUND FIX  Bug 536024 -  When i expand folder-tree on Edit This Bookmark, the bookmarked folder is changed.
    // @version        2009/08/11 18:00 Tree Style Tab0.8.2009081101 Unterstützung für das Umbenennen von Objekten
    // @version        2009/08/07 00:00 Tree Style Tab0.8.2009073102 Treestyletab-Tabzeile ausblenden, wenn vorhanden
    // @version        2009/08/06 19:00 Tree Style Tab0.8.2009073102 Problem, dass der übergeordnete Tab für einen Moment angezeigt wird, behoben 
    // @version        2009/08/06 18:00 Tree Style Tab 0.8.2009073102 entsprechend
    // @version        2009/06/24 00:00 Firefox3.5 Es wurde ein Fehler behoben, durch den der Offen / Geschlossen Status des Expanders in der 
    // @version        2009/06/24 00:00 Ordnerstruktur und der Tag-Auswahl nicht gespeichert wurde
    // @version        2009/01/02 02:00 Beschreibung, Position, loadInSidebar, Schlüsselwort und Einstellung anzeigen / ausblenden
    // @version        2009/01/01 22:28
    var openbookResizer = {
    
      drag  :false,
      height: null,
      width : null,
      eventOffset: null,
      timer: null,
      PREHIDEROW   : "userChrome.openbook.hideRow",   //description, location, loadInSidebar, keyword
      PREFTREEHEIGHT: "userChrome.openbook.treeHeight",
      PREFTREEWIDTH : "userChrome.openbook.treeWidth",
      PREFOPENTREE: "userChrome.openbook.openTree",
      PREFOPENTAG : "userChrome.openbook.openTag",
    
      get tree(){
        return gEditItemOverlay._element('folderTree');
      },
    
      get getHideRow(){
        try {
          return Services.prefs.getCharPref(this.PREHIDEROW).replace(/\s/g,'').slice(',');
        } catch(e) {
          return [];
        }
      },
    
      get getPrefTreeHeight(){
        try {
          return Services.prefs.getIntPref(this.PREFTREEHEIGHT);
        } catch(e) {
          return 150;
        }
      },
      get getPrefTreeWidth(){
        try {
          return Services.prefs.getIntPref(this.PREFTREEWIDTH);
        } catch(e) {
          return 250;
        }
      },
    
      get editBookmarkPanel(){
        return document.getElementById('editBookmarkPanel');
      },
    
      get treeExpander(){
        return gEditItemOverlay._element('foldersExpander');
      },
    
    
      get tagExpander(){
        return gEditItemOverlay._element('tagsSelectorExpander');
      },
    
      get getPrefOpenTree(){
        try {
          return Services.prefs.getBoolPref(this.PREFOPENTREE);
        } catch(e) {
          return false;
        }
      },
    
      get getPrefOpenTag(){
        try {
          return Services.prefs.getBoolPref(this.PREFOPENTAG);
        } catch(e) {
          return false;
        }
      },
    
      get isFx35(){
        return parseInt(Components.classes["@mozilla.org/xre/app-info;1"]
                         .getService(Components.interfaces.nsIXULAppInfo)
                         .version.substr(0,3) * 10, 10) / 10 > 3.0;
      },
    
      get isFx37(){
        parseInt(Components.classes["@mozilla.org/xre/app-info;1"]
                         .getService(Components.interfaces.nsIXULAppInfo)
                         .version.substr(0,3) * 10, 10) / 10 > 3.6;
      },
    
      init: function(){
        //window.removeEventListener('load', this, false);
        window.addEventListener('unload', this, false);
    
        var style = " \
          .openbookResizerGripper { \
            list-style-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAApklEQVQokY3QK4uCURCA4QeDLCoIXoIYNFiUFVZBq2JQEEx+UcTmpi1b121eosX/a5lg8jvTzsy8M+8cGGKNusQY44QMlRTgAzOcsUqBitH0FVCWpzeNpmZsytUb4oY9qil6BfRxDaiZp1eO5OBl01u9JX7QxiRFr4XfmNbFZ+gdojbCBbt4a6CDP/wH1McDR9SwwB1b+I4bejG1ER8xxwaluHOJ8RM+9xjk9q2RpwAAAABJRU5ErkJggg=='); \
            cursor: sw-resize; \
          }";
        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.folderTreeRow   = this.isFx35 ? "folderTreeRow"   : "folderTree";
        this.tagsSelectorRow = this.isFx35 ? "tagsSelectorRow" : "tagsSelector";
    
        gEditItemOverlay.initPanel_org = gEditItemOverlay.initPanel;
        gEditItemOverlay.initPanel = function(aInfo) {
          aInfo.hiddenRows = openbookResizer.getHideRow;
          gEditItemOverlay.initPanel_org(aInfo);
        }
    
        // selected tree visible
        func = gEditItemOverlay.toggleFolderTreeVisibility.toString();
        func = func.replace(
          'var currentFolder = this._getFolderIdFromMenuList();',
          ''
        );
        func = func.replace(
          /expander.className = "expander-up";*/,
          'var currentFolder = this._getFolderIdFromMenuList(); \
          var onselect = this._folderTree.getAttribute("onselect"); \
          this._folderTree.removeAttribute("onselect"); \
          $&;'
        );
        func = func.replace(
          'this._folderTree.focus();',
          '$&; \
          setTimeout(function(tree){ \
            var start = new Object(); \
            var end = new Object(); \
            var numRanges = tree.view.selection.getRangeCount(); \
            if (numRanges > 0) { \
              tree.view.selection.getRangeAt(0,start,end); \
              var v = start.value; \
              tree.treeBoxObject.ensureRowIsVisible(v); \
            } \
            tree.setAttribute("onselect", onselect); \
          }, 0, this._folderTree);'
        );
        try{
          gEditItemOverlay.toggleFolderTreeVisibility = new Function(
             func.match(/\((.*)\)\s*\{/)[1],
             func.replace(/^function\s*.*\s*\(.*\)\s*\{/, '').replace(/}$/, '')
          );
        } catch(ex){}
        
        // selected tree visible
        func = gEditItemOverlay.onFolderMenuListCommand.toString();
        func = func.replace(
          'this._folderTree.selectItems([container]);',
          '{var onselect = this._folderTree.getAttribute("onselect"); \
          this._folderTree.removeAttribute("onselect"); \
          $&; \
          setTimeout(function(tree){ \
            var start = new Object(); \
            var end = new Object(); \
            var numRanges = tree.view.selection.getRangeCount(); \
            if (numRanges > 0) { \
              tree.view.selection.getRangeAt(0,start,end); \
              var v = start.value; \
              tree.treeBoxObject.ensureRowIsVisible(v); \
            } \
            tree.setAttribute("onselect", onselect); \
          }, 0, this._folderTree);}'
        );
        try{
          gEditItemOverlay.onFolderMenuListCommand = new Function(
             func.match(/\((.*)\)\s*\{/)[1],
             func.replace(/^function\s*.*\s*\(.*\)\s*\{/, '').replace(/}$/, '')
          );
        } catch(ex){}
    
    
        this.editBookmarkPanel.addEventListener('popupshowing', this, false);
        this.editBookmarkPanel.addEventListener('popupshown', this, false);
        this.editBookmarkPanel.addEventListener('popuphiding', this, false);
      },
    
      uninit: function(){
        window.removeEventListener('unload', this, false);
        this.editBookmarkPanel.removeEventListener('popupshowing', this, false);
        this.editBookmarkPanel.removeEventListener('popupshown', this, false);
        this.editBookmarkPanel.removeEventListener('popuphiding', this, false);
      },
    
      handleEvent: function(event){
        switch(event.type){
          case 'unload':
            this.uninit();
            break;
          case 'popupshowing':
            this.popupshowing(event);
            break;
          case 'popupshown':
            this.popupshown(event);
            break;
          case 'popuphiding':
            this.popuphiding(event);
        }
      },
    
      popuphiding: function(event){
        if (this.editBookmarkPanel != event.originalTarget)
          return;
        var state = !gEditItemOverlay._element(this.folderTreeRow).collapsed;
        Services.prefs.setBoolPref(this.PREFOPENTREE, state);
        var state = !gEditItemOverlay._element(this.tagsSelectorRow).collapsed;
        Services.prefs.setBoolPref(this.PREFOPENTAG, state);
    
        gEditItemOverlay._element(this.folderTreeRow).collapsed = true;
        gEditItemOverlay._element(this.tagsSelectorRow).collapsed = true;
    /*
        // xxx Bug 556342  - Invalid Treeview in bookmark menu via star pane
        var tree = document.getElementById("editBMPanel_folderTree");
        if (!this.isFx37)
          var result = tree.getResult();
          if (result) {
            result.root.containerOpen = false;
          }
          tree.view = null;
          // xxx
        }
    */
      },
    
      popupshowing: function(event){
        if (this.editBookmarkPanel != event.originalTarget)
          return;
    
        this.tree.height = this.getPrefTreeHeight;
        //this.tree.width = this.getPrefTreeWidth;
        //this.editBookmarkPanel.width = this.getPrefTreeWidth;
    
        if (!document.getElementById("openbookResizerbottomBox")) {
          var panel = document.getElementById("editBookmarkPanel");
          
          var innerarrow = document.getAnonymousElementByAttribute(panel, "class", "panel-inner-arrowcontent");
          if (innerarrow)
            innerarrow.setAttribute('flex', 1);
    
          var box = document.createXULElement("hbox");
          box.setAttribute('id', 'openbookResizerbottomBox');
          box.setAttribute('align',"start");
    
          var resizer = document.createXULElement("image");
          resizer.setAttribute("class", "openbookResizerGripper");
          resizer.setAttribute('onmousedown', 'openbookResizer.mousedown(event)');
    
          box.appendChild(resizer);
          panel.appendChild(box);
    
          panel.setAttribute('onmousemove', 'openbookResizer.mousemove(event)');
          panel.setAttribute('onmouseup', 'openbookResizer.mouseup(event)');
        }
      },
    
      popupshown: function(event){
        if (this.editBookmarkPanel != event.originalTarget)
          return;
        setTimeout(function(self) {
          if (self.getPrefOpenTree &&
              gEditItemOverlay._element(self.folderTreeRow).collapsed ) {
            gEditItemOverlay.toggleFolderTreeVisibility();
          }
          if (self.getPrefOpenTag &&
              gEditItemOverlay._element(self.tagsSelectorRow).collapsed ) {
            gEditItemOverlay.toggleTagsSelector();
          }
          try {
            gEditItemOverlay._element(Services.prefs
              .getCharPref("browser.bookmarks.editDialog.firstEditField")).focus();
          } catch(e) {}
      }, 100, this);
      },
    
      mousedown: function(event){
        this.drag = true;
        this.height = parseInt(this.tree.boxObject.height);
        this.width = parseInt(this.editBookmarkPanel.boxObject.width);
        this.eventOffset = event;
      },
    
      mousemove: function(event) {
        if (this.timer)
          clearTimeout(this.timer);
        this.timer = setTimeout(function(event, self){
          if (self.drag) {
            // make sure height [150,screen-300] and width is [300,screen-50]
            var newValue;
            newValue = self.height + event.pageY - self.eventOffset.pageY;
            if (newValue <= screen.height - 300 && newValue >= 150) {
              self.tree.height = newValue;
            }
    
            newValue = self.width - event.pageX + self.eventOffset.pageX;
            if (newValue <= screen.width - 50 && newValue >= 300) {
              //self.tree.width = newValue;
              self.editBookmarkPanel.width = newValue;
            }
    
          }
        }, 10, event, this);
      },
      mouseup: function(event) {
        if (this.drag) {
          Services.prefs.setIntPref(this.PREFTREEHEIGHT, this.tree.height);
          Services.prefs.setIntPref(this.PREFTREEWIDTH, this.editBookmarkPanel.boxObject.width);
        }
        this.drag = false;
      }
    }
    //window.addEventListener("load", openbookResizer, false);
    openbookResizer.init();
    Alles anzeigen
  • Firefox 76 - openbookModokiFor40.uc.js

    • bananovic
    • 9. Mai 2020 um 09:58

    Das automatische Aufklappen selbst (Manuel: Klick auf das Listenfeld) funktioniert noch. Das Problem besteht darin, daß das Panel nicht mehr in der durch den Anfasser eingestellten Größe automatisch aufgeklappt wird. Dadurch entsteht der Eindruck, das automatische Aufklappen funktioniere insgesamt nicht mehr. Ich habe das Problem durch Einstellung der gewünschten Höhe des Panels in der userChrome.css wie folgt gelöst:

    CSS
    /* Mindesthöhe Lesezeichenordner Liste anpassen -> Lesezeichen hinzufügen/bearbeiten */
    #editBMPanel_folderTree{
      min-height: 342px !important;
    } 

    Dadurch stört es mich auch nicht, daß der Anfasser in FF 76 nicht mehr vorhanden ist. Die Pixel-Zahl muß jeder individuell einstellen. Das ist gewissermaßen der Ersatz für den Anfasser.

  • "vergrösserte" Adresszeile abstellen - FF 75.0

    • bananovic
    • 12. April 2020 um 13:18
    Zitat

    Da ich ein Fan der separaten Suchleiste bin, stört mich die Möglichkeit der Sucheingabe in der Adresszeile ohnehin.

    Die nun besondere Hervorhebung dieser Zeile umsomehr.

    Ich möchte dieses "Feature" gerne abstellen und benötige einen Tipp dazu.

    Einstellungen - Startseite: bei Internetsuche den Haken raus. Dann erscheint das "Feature" in der Adresszeile nicht mehr.

    Update: Muß mich korrigieren. Das hat offensichtlich nur funktioniert, weil ich auf Neustart geklickt habe. Bei einem normalen Start von Firefox ist das "Feature" wieder da.

    Jetzt habe ich aber herausgefunden wie es geht. In about:config browser.urlbar.update1 auf false setzen.

  • Firefox 70 - openbookModokiFor40.uc.js

    • bananovic
    • 3. November 2019 um 13:58

    Ich verwende das in Post #2 von Endor verlinkte Script. Mir ist aufgefallen, daß das Script beim ersten Aufruf in einer Firefox Sitzung nicht funktioniert. Der Ordnerbaum ist eingeklappt, links unten ist keine Ecke zum Ziehen vorhanden. Erst wenn ich das Panel schließe und erneut ein Lesezeichen setze, ist der ganze Ordnerbaum sowie die Ecke sichtbar. Das bleibt so bis zum Ender der Firefox Sitzung. Irgendwo hat der Code des Scripts einen Fehler.

  • Firefox 70 und grünes Schloss-Symbol

    • bananovic
    • 27. Oktober 2019 um 20:00

    BrokenHeart: Perfekt, jetzt stimmt alles. Mein großer Dank.

  • Firefox 70 und grünes Schloss-Symbol

    • bananovic
    • 27. Oktober 2019 um 16:54

    BrokenHeart:

    Danke, genau so schwebt mir das vor, so war es bisher. Einige Favicons haben die richtige Größe, andere sind noch zu groß. Der Abstand zwischen dem Favicon und dem Schloß könnte noch etwas größer sein, so etwa insgesamt 1,5 - 2 mm. So war es bisher.

    Kerian:

    Danke, ich wußte gar nicht, daß es so einfach ist, das Schloß wieder grün zu machen.

  • Firefox 70 und grünes Schloss-Symbol

    • bananovic
    • 27. Oktober 2019 um 14:28

    Bis FF 69 umfaßt die ID identity-box das Favicon (ID: identity-icon) und das Schloß (ID: connection-icon). In FF 70 umfaßt die identity-box nur das Schloß oder das Favicon (ID beides: identity-icon).

  • Firefox 70 und grünes Schloss-Symbol

    • bananovic
    • 27. Oktober 2019 um 14:08

    Hier ist der Script Code:

    Code
    //      BackToTheFavicon.uc.js
    
    (function() {
    
       if (location != 'chrome://browser/content/browser.xhtml')
          return;
    
       gBrowser.tabContainer.addEventListener('TabAttrModified', function() {
          var icon = document.getElementById('identity-icon');
          var favicon = gBrowser.selectedTab.image;
          if (favicon)
             icon.src = favicon
          else
             icon.removeAttribute('src');
       }, false);
    
       if (Number(gAppInfo.version.split('.')[0]) >= 51) {
          var css =
             '#urlbar[pageproxystate="valid"] > #identity-box > #identity-icon {opacity: 1} ' +
             '#identity-icon {filter: none}';
          var stylesheet = document.createProcessingInstruction('xml-stylesheet',
             'type="text/css" href="data:text/css;utf-8,' + encodeURIComponent(css) + '"');
          document.insertBefore(stylesheet, document.documentElement);
       };
    
    })();
    Alles anzeigen

Unterstütze uns!

Jährlich (2025)

104,5 %

104,5% (679,10 von 650 EUR)

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