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

Beiträge von BrokenHeart

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

    • BrokenHeart
    • 18. Januar 2023 um 22:51
    Zitat von FuchsFan

    kannst Du bitte helfen.

    Puuuh, leider nein :(. Ich habe keine Ahnung, was jetzt wieder nicht läuft und müsste das Skript debuggen. Da komme ich frühestens am Wochenende dazu. Vielleicht hat ja aborix eine Lösung parat? :/

  • Rechtsklick auf ein Icon von einem Skript ändern

    • BrokenHeart
    • 18. Januar 2023 um 22:25
    Zitat von Mira_Belle

    Ziel ist es, den Code so zu gestalten, dass grundlegend alle Funktionen erhalten bleiben,

    aber eben bei Rechtsklick mit der Maus nur das Menü aufgeht

    und nicht mehr die Lesezeichenleiste ausgelöst wird.

    Dann kannst du das z.B. so machen (die geänderten Zeilen habe ich mal markiert) :

    JavaScript
    (function ptbut() {              
        if (location.href !== 'chrome://browser/content/browser.xhtml') return;
           
        let startHeight = '0px';                // '24px' oder '0px' Der Startzustand wird definiert: '24px' startet mit sichtbarer Leiste
        let collapse = '0px';                   // Leiste nicht sichtbar
        let visible = '24px';                   // Leiste sichtbar
        let autoCloseTime = 5000;               // 0 = kein Auto-Close / >0 Zeit in Millisekunden /5000 => 5sec  
        let intervalID = 0;
        let persToolbar = document.getElementById('PersonalToolbar');
    
        try {
            CustomizableUI.createWidget({
                id: 'PersonalToolbar-button',
                type: 'custom',
                defaultArea: CustomizableUI.AREA_NAVBAR,
                    onBuild: function(aDocument) {
                        let toolbaritem = aDocument.createXULElement('toolbarbutton'); 
                        let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons')); 
                        // ^^ Pfadangabe zum Profilordner und gleich in den entsprechenden Unterordner ^^
                        let buttonicon = "bookmark-hollow.svg";  // Name & Dateiendung des anzuzeigenden Symbols
                        let props = {
                            id: 'PersonalToolbar-button',
                            class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                            removable: true,
                            label: 'Toggle',
                            tooltiptext: 'Lesezeichenleiste ein-/ausblenden',
                            style: "list-style-image: url('" + ProfilePath + buttonicon + "');"
                            
                        };                   
                        for(var p in props)
                            toolbaritem.setAttribute(p, props[p]);
                        return toolbaritem;                 
                    }
            });
        } catch(e) { };
        //----------BEGINN----------------------
        // Funktion zum Abfragen der Tastatur ("belauscht" Eingaben)
        // Hinweis: Tasten, die anderweitig bereits "abgefangen" werden, ergeben keinen Event
        document.addEventListener('keydown', (event) => {
            let keyName = event.key;
                if (event.altKey && keyName == 'q') {   // Funktion wird ausgeführt, wenn "Alt & q gedrückt werden
                    onClick(event,true);  // ----geändert----
                }
            }, false
        );
        //----------ENDE------------------------ 
    
        document.getElementById('PersonalToolbar').style.minHeight = '0';
        document.getElementById('PersonalToolbar').style.transition = 'all 0.3s steps(6, end)';
    
        if( startHeight === visible || startHeight === collapse ) {
            document.getElementById('PersonalToolbar').style.height = startHeight;
        }
        else {
            document.getElementById('PersonalToolbar').style.height = visible;
        }
    
        document.getElementById('PersonalToolbar-button').addEventListener( "click", onClick );
    
        function onClick(aEvent, keyEvent=false) // ----geändert----
        {          
            if(!keyEvent && aEvent.button != 0) { // ----geändert----
                return;    
            }
    
            if (persToolbar.style.height == '') {
                    persToolbar.style.height = collapse;
            }
            else if (persToolbar.style.height == visible) {
                    persToolbar.style.height = collapse;
            }
            else if(persToolbar.style.height == collapse) {
                persToolbar.style.height = visible;
                if(!intervalID && autoCloseTime) {
                    intervalID =  aEvent.target.ownerGlobal.setInterval( autoClose, autoCloseTime ); 
                }
            }
        }
    
        function autoClose() {
            if( intervalID ) {
                if( persToolbar.style.height == visible) {
                    persToolbar.style.height = collapse;
                    clearInterval(intervalID); 
                    intervalID=0;
                }
            }
        }
    })();
    Alles anzeigen
  • Rechtsklick auf ein Icon von einem Skript ändern

    • BrokenHeart
    • 18. Januar 2023 um 13:22
    Zitat von 2002Andreas

    Nochmals herzlichen Dank dafür :)

    Gerne... :)

  • Addons-icon verstecken/entfernen

    • BrokenHeart
    • 18. Januar 2023 um 13:17

    Ich hatte doch geschrieben, dass Mozilla dies anders als Google handhaben will, was ja auch so im CB-Artikel stand:

    Zitat von BrokenHeart

    Allerdings arbeitet Mozilla wohl an einer eigenen, modifizierten Manifest v3-API, welches diese Einschränkungen nicht hat und solange wird dann wohl auch Manifest v2 weiter parallel laufen.

    Ist folgender Absatz denn falsch und gibt es was Neues dazu?

    Zitat von Sören Hentzschel

    [...], zweitens wird diese dann später in Firefox parallel zur WebRequest API und nicht als Ersatz existieren.

    Zitat von ComputerBase

    Auch die Vorgänger-API WebRequest soll noch so lange erhalten bleiben, bis die Entwickler eine gangbare Lösung in Form einer adäquaten Version von DNR ausgearbeitet haben.

    Dort steht ja, dass die WebRequestAPI dann ersetzt wird, wenn man die Funktionalität in die DNR integriert hat, also nicht "ewig" parallel weiter angeboten wird.

    Zitat von Sören Hentzschel

    Die Fehlinformation seitens ComputerBase beginnt schon damit, dass sie das „Chrome Manifest v3“ nennen. Das heißt einfach nur „Manifest v3“,

    Na ja, es wird ja auch im Artikel deutlich gemacht, dass Mozilla eigene Wege geht, von daher halte ich das für verzeihlich.

    Mag sein, dass hier nicht deutlich genug zwischen den unterschiedlichen Ansätzen von Google und Mozilla getrennt wurde und auch die Bemühungen Mozillas bezüglich der Einschränkungen bei AdBlockern nicht hervorgehoben wurden, aber als fehlerhaft würde ich den Artikel nicht beschreiben. Ich sah die allgemeinen Einlassungen in dem Artikel über das „Chrome Manifest v3“ und den damit verbundenen Vorbehalten, eher als Grundlageninformation und Ausgangspunkt, um dann auf Mozillas Herangehensweise (zugegebenermaßen kurz) einzugehen, wobei ich nicht weiß, welche konkreten Pläne es dazu schon bei Mozilla gibt, weil ich mich nicht tagtäglich damit beschäftige...

  • Rechtsklick auf ein Icon von einem Skript ändern

    • BrokenHeart
    • 18. Januar 2023 um 12:18
    Zitat von 2002Andreas

    Was ich gerne möchte, dass die Datei nur per Linksklick aufgerufen wird, und beim Rechtsklick ganz normal das Standard Kontextmenü.

    Hallo 2002Andreas ,

    Folgende Änderungen müssten durchgeführt werden:

    (Bitte beachten: Der OnClick-Funktion muss der Parameter 'event' übergeben werden, also:

    JavaScript
     onClick: function(event) {
          if (event.button != 0){
             return;
          }

    Skript mit der Änderung:

    JavaScript
    // ruft die Datei Test.uc.js direkt auf
    
    
    (function() {
         if (location != 'chrome://browser/content/browser.xhtml') return;
    
        try {
            Components.utils.import("resource:///modules/CustomizableUI.jsm");
            CustomizableUI.createWidget({
                id: "Scriptbutton",
                defaultArea: CustomizableUI.AREA_NAVBAR,
                removable: true,
                label: "Openscriptbutton",
                tooltiptext: "Test.uc.js",
                onClick: function(event) {
                    
                    if (event.button != 0){
                        return;
                    }
                
                    var dir = Services.dirsvc.get('UChrm', Ci.nsIFile);
                    dir.append('Test.uc.js');
                    // dir.append('Test.css');
                    dir.launch();
        
                },
                onCreated: function(aNode) {
                    aNode.style.listStyleImage = 'url( data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAATCAYAAABlcqYFAAACLklEQVQ4ja3Q70sTcQDH8XuymQtlUhAsiKhgCCGYimzQHyCDsnTTNlxLMawYJKxlzA06OdejKGZcN1qr0WEaEym3Vhar+WNPoodBT8o9atKwX6wf3rpPT0zcfb8nUvvC69Hd5/vmjmEUx8wtWEzcYsrEZfPm0Sy2ysRl8yZuMWXmFizKO8tOKzsXbB2Zx39j54LUQFMgY2m5nEGlNAUy5Bc1+tPJQ4E0KqXRn04SkQbf7HKD7xkqZ3aZiBy89BRqDg89wOfiKoq/Svj2Q1oHAMd9EdUdEan3PoYaW+A2aCc0kYLRPaG6IyJGTwJq7r9MEYHCpxXU999Q3Rg9CTKyf/AhaPadHUfuw0dF4ifaPCPU9zciInvd06BpGeRR+i2XJb4U30GITyH1KofX71cwfOsJdUtE9pyLg+bYRX7t6u8ASsRvW5XeoN07St0SEcPAJGiMjiB6hnhcEz2Q5UJZ4G0uCeMplrozDEySkV3949jMafZqWUAQH8Fgv77phojs7BOhqjeGqeeJtd9TwBnODf2JMezovae+6RPJiN4Vy9e5YqDZ7bgCqfQVgIyu4QvQn7y7Tm2jd8XyRKTGGZ2pdd4BTfwFi+mkgANH/KjtiVLfUapxRmeISHV32KyzR+Ttjgg20lnHcPR8G+raA1A+U6OzR+Tq7rCZiDAMw2htgrfKJkjbusL4V1U2QdLaBC818PdoOkLNGisvajv5Ja31Jrask1/SWHlR0xFqVt75B87drLq2rxO6AAAAAElFTkSuQmCC)';
                    return aNode;
                }
            });
            
                        
        } catch (e) {
            Components.utils.reportError(e);
        };
    
    })();
    Alles anzeigen
  • Addons-icon verstecken/entfernen

    • BrokenHeart
    • 18. Januar 2023 um 11:49
    Zitat von 2002Andreas

    Warum verlinkst du dazu nicht auf unsere Seite :/

    Ich finde den Computerbase-Artikel in Bezug auf Manifest-v3-Erweiterungen einigermaßen informativ und finde zusätzliche Informationen zu dem Thema können nicht schaden. Vor allem der Hinweis, dass das "Chrome Extension Manifest v3" durchaus umstritten ist, da es jetzt noch vorhandene Möglichkeiten in der entfernten 'WebRequest-API' beschneidet und durch die neue "Declarative Net Request API" ersetzt, welche z.B. die Anzahl der Regeln auf 30.000 (geplant 150.000?) kürzt, wobei aktuell bei Ad-Blockern wesentlich mehr genutzt werden. Auch das Erstellen, Pflegen und tägliche Updaten der Filterlisten wird erschwert. Es gibt noch mehr Kritikpunkte, wobei man sagen muss, dass der Schutz der Privatsphäre, besserer Schutz vor Malware und eine verbesserte Performance natürlich positiv zu bewerten sind. Wie stark sich die Einschränkungen in der Praxis auswirken werden und gegebenenfalls umgehen lassen, wird man sehen...

    Allerdings arbeitet Mozilla wohl an einer eigenen, modifizierten Manifest v3-API, welches diese Einschränkungen nicht hat und solange wird dann wohl auch Manifest v2 weiter parallel laufen.

  • Maustaste für ZURÜCK mit Logitech MX Master funktioniert nicht mehr

    • BrokenHeart
    • 15. Januar 2023 um 16:38
    Zitat von 2002Andreas

    Was mich nur wundert, selbst die Tastenkombination ALT + Pfeil links/rechts geht ja nicht.

    Stimmt. Das ist merkwürdig. Das sollte natürlich unabhänging von der Logitech-Software bzw. überhaupt der Maus sein... :/

    Vielleicht auch mal in der Browser-Konsole ('Weitere Werkzeuge' -> 'Browser-Konsole') nachschauen, ob irgendwelche Fehlermeldungen diesbezüglich ausgegeben werden.

    Was auch sehr merkwürdig ist, dass das Fehlverhalten zeitweise nicht aufgetreten ist, was eher für ein prinzipielles Hard-/Software-Problem sprechen würde. Ich würde in Edge oder Chrome einmal längere Zeit testen, ob sich da das Problem nicht auch dort irgendwann zeigt...


    Möglich auch, dass die ALT-Taste einen Schaden hat und diese Kombination durch Firefox oder Treiber dazu genutzt wird, um die Vor-/Zurück-Funktionalität intern aufzurufen...

  • Maustaste für ZURÜCK mit Logitech MX Master funktioniert nicht mehr

    • BrokenHeart
    • 15. Januar 2023 um 16:02

    Unter 'about:config' -> 'mousebutton':

    Stehen beide Werte auf 'true'?


    Wurde eigentlich schon einmal ohne spezielle Logitech-Treiber und Zusatzsoftware getestet? Also alles, was mit der Logitech-Maus zu tun hat, deinstallieren, Rechner neu starten und dann am besten im Firefox-Fehlerbehebungsmodus wieder testen. Funktioniert es dann, hätte man zumindest mal den Verursacher identifiziert. Die Daumen-Tasten werden ja auch ohne spezielle Treiber/Software standardmäßig von Windows unterstützt...

  • Allgemeine Frage(n) zu JavaScript

    • BrokenHeart
    • 12. Januar 2023 um 15:32
    Zitat von Sören Hentzschel

    Ich würde, um sicher zu gehen, in jedes Script ein console.log('name des scripts') einbauen und prüfen, ob das für irgendein Script mehrfach geloggt wird. Wenn nicht, scheint mir alles gut zu sein.

    Das mehrfache Laden eines Skripts passiert auch mit dem Standard-Aufruf (meist 2x).

    Deshalb sollte in jedem Skript auch ganz am Anfang so was wie:

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

    oder

    if (!window.gBrowser){ return; }

    stehen, was bei mehrfachem Aufruf das Skript beendet...

    Den genauen Grund weiß ich nicht. Hatte mal gedacht, es hängt mit der Anzahl der Fenster zusammen, aber auch bei nur einem Fenster wird das Skript mehrfach aufgerufen. Vielleicht weiß ja aborix mehr darüber, der hat ja, soweit ich weiß, am Loader mitgearbeitet... :/

  • Einzelner Lesezeichenordner in nav-bar - möglich ?

    • BrokenHeart
    • 11. Januar 2023 um 19:41
    Zitat von clio

    Magst Du das zur Verfügung stellen?

    Klar, kann ich machen. Im Gegensatz zu den "aufgeräumten Usern" hier, herrscht bei mir in der userChrome.css aber ein heilloses, unkommentiertes Messi-Chaos und ich weiß nicht ob du viel mit dem Schnipsel anfangen kannst, da auch die Selektoren sehr auf meine Bedürfnisse zugeschnitten sind. Die meisten :not([...])-Sachen, kannst du bei dir wahrscheinlich wegschmeißen.

    CSS
    #nav-bar .toolbarbutton-1:not([id$="-ucjs"]):not([class*="webextension-browser-action"]):not([class*="combined"]):not([id="PanelUI-menu-button"]):not([id="nav-bar-overflow-button"]) 
    {
        margin: 2px 3px 3px!important;
        min-height: 30px !important;
        max-height: 30px !important;
        min-width: 30px !important;
        max-width: 30px !important;
    
        border-radius: 50% !important;
        background-position: center !important; 
        background: linear-gradient(155deg, rgba(0,0,0,.5),  rgba(164,164,164,.5) );
        box-shadow:  -1px -1px 2px rgba(255,255,255,.25), 2px 2px 2px rgba(34,34,34,0.5); 
        filter: contrast(110%) brightness(90%) !important;
        transition: filter 0.33s, box-shadow 0.33s !important;
    }    
    #nav-bar .toolbarbutton-1:not([id$="-ucjs"]):not([class*="webextension-browser-action"]):not([class*="combined"]):not([id="PanelUI-menu-button"]):not([id="nav-bar-overflow-button"]):hover:not([disabled="true"])
    {
        filter: contrast(120%) brightness(100%) !important;
    }    
    #nav-bar .toolbarbutton-1:not([id$="-ucjs"]):not([class*="webextension-browser-action"]):not([class*="combined"]):not([id="PanelUI-menu-button"]):not([id="nav-bar-overflow-button"]):hover:not([disabled="true"]):active:not([disabled="true"]) 
    {
        border-radius: 50% !important; 
        background: linear-gradient(145deg, rgba(0,0,0,.5),  rgba(48,48,48,.5), rgba(108,108,108,0.5) ) !important;
        box-shadow:  0px 0px 1px rgba(255,255,255,.25) !important; 
    }    
    
    #nav-bar .toolbarbutton-1:not([id$="-ucjs"]):not([class*="webextension-browser-action"]):not([class*="combined"]):not([id="PanelUI-menu-button"]):not([id="nav-bar-overflow-button"]) .toolbarbutton-icon,
    #nav-bar .toolbarbutton-1:not([id$="-ucjs"]):not([class*="webextension-browser-action"]):not([class*="combined"]):not([id="PanelUI-menu-button"]):not([id="nav-bar-overflow-button"]) .toolbarbutton-badge-stack
    {
        background: transparent !important;
        fill: rgba(220,220,220,1) !important;
        filter:  drop-shadow( 1px 1px 1px rgba(25,25,25,.75)) !important;
        transition: fill 0.33s, filter 0.33s, transform .33s !important;
    }    
    #nav-bar .toolbarbutton-1:not([id$="-ucjs"]):not([class*="webextension-browser-action"]):not([class*="combined"]):not([id="PanelUI-menu-button"]):not([id="nav-bar-overflow-button"]):not([open]):hover:not([disabled="true"]) .toolbarbutton-icon,
    #nav-bar .toolbarbutton-1:not([id$="-ucjs"]):not([class*="webextension-browser-action"]):not([class*="combined"]):not([id="PanelUI-menu-button"]):not([id="nav-bar-overflow-button"]):not([open]):hover:not([disabled="true"]) .toolbarbutton-badge-stack
     {
        fill: rgba(255,255,255,1) !important;
        filter: drop-shadow( 1px 1px 1px rgba(25,25,25,1.00)) drop-shadow( -1px -1px 3px rgba(200,200,200, 0.5)) brightness(160%) !important; 
        transition: fill 0.33s, filter 0.33s, transform .33s !important;
    }    
    #nav-bar .toolbarbutton-1:not([id$="-ucjs"]):not([class*="webextension-browser-action"]):not([class*="combined"]):not([id="PanelUI-menu-button"]):not([id="nav-bar-overflow-button"]):hover:not([disabled="true"]):active:not([disabled="true"]) .toolbarbutton-icon,
    #nav-bar .toolbarbutton-1:not([id$="-ucjs"]):not([class*="webextension-browser-action"]):not([class*="combined"]):not([id="PanelUI-menu-button"]):not([id="nav-bar-overflow-button"]):hover:not([disabled="true"]):active:not([disabled="true"]) .toolbarbutton-badge-stack
    {
        fill: rgba(0,207,229,1) !important;  
        filter: drop-shadow( 1px 1px 1px rgba(25,25,25,.75)) drop-shadow( -1px -1px 3px rgba(0,207,229,1)) brightness(160%) !important; 
        transform: translate(0px,1px)  !important; 
    }
    #nav-bar .toolbarbutton-1:not([id$="-ucjs"]):not([class*="webextension-browser-action"]):not([class*="combined"]):not([id="PanelUI-menu-button"]):not([id="nav-bar-overflow-button"])[open] .toolbarbutton-icon,
    #nav-bar .toolbarbutton-1:not([id$="-ucjs"]):not([class*="webextension-browser-action"]):not([class*="combined"]):not([id="PanelUI-menu-button"]):not([id="nav-bar-overflow-button"])[open] .toolbarbutton-badge-stack
    {
        fill: rgba(0,207,229,1) !important;  
        filter: drop-shadow( 1px 1px 1px rgba(25,25,25,.75)) drop-shadow( -1px -1px 3px rgba(0,207,229,1)) brightness(160%) !important; 
        transform: translate(0px,0px)  !important; 
    }
    Alles anzeigen

    Bilder

    • Screen214.gif
      • 220,44 kB
      • 668 × 316
  • Einzelner Lesezeichenordner in nav-bar - möglich ?

    • BrokenHeart
    • 11. Januar 2023 um 18:23

    Hallo clio, freut mich, wenn dir das gefällt :) , aber ich nutze kein Extra-Theme und die Icons auf dem Screenshot sind 1:1 die unveränderten original Firefox-Icons. Ich habe nur einen (animierten) runden CSS-Button darum gebastelt und auch alles andere (z.B. Hintergrund etc.) ist CSS-Handarbeit... ;)

  • Einzelner Lesezeichenordner in nav-bar - möglich ?

    • BrokenHeart
    • 10. Januar 2023 um 17:50
    Zitat von Horstmann

    Hmm, jetzt wo Du's sagst - im Lesezeichenmenü scheint es tatsächlich Lesezeichen geben zu können, nicht nur Lesezeichen Menüs .

    Du musst nur die einzelnen Lesezeichen auf die höchste Ebene, unter 'Lesezeichen-Menü' eintragen/verschieben/kopieren:

  • Einzelner Lesezeichenordner in nav-bar - möglich ?

    • BrokenHeart
    • 10. Januar 2023 um 17:31
    Zitat von 2002Andreas

    Peinlich, sorry.

    Von wegen "peinlich" ! Jetzt muss ich dich aber zitieren: "Alles ist gut!". ;) :)

    Du wolltest Horstmann helfen und außerdem kann man ja vielleicht vom Ansatz her wirklich was aus dem Skript machen :/ .

    Ich bin aber immer noch der Meinung, dass die Anpassung (per CSS?) des 'Lesezeichen-Menü-Button'-Popups, der einfachere Weg ist...

  • Einzelner Lesezeichenordner in nav-bar - möglich ?

    • BrokenHeart
    • 10. Januar 2023 um 16:54
    Zitat von 2002Andreas

    Ich habe mal den Menüeintrag aus Lesezeichen > Weitere Lesezeichen verschiebbar gemacht.

    Die Anzeige funktioniert einwandfrei , aber bei mir öffnet er das Lesezeichen bei Links-Klick mit der Maus nicht. Nur wenn ich über das Kontext-Menü gehe, kann ich es öffnen. Ist das bei dir auch so? Ich denke, die größte Schwierigkeit wird sein, das Menü wirklich als Drag&Drop-Ziel zu definieren. So wie es aussieht, verhält es sich ja wie ein 'normales' Menü. Ich wüsste nicht wie das geht, aber vielleicht weiß ja jemand eine einfache Lösung dafür... :/ ?

    Zitat von Horstmann

    Ein einzelner, voll funtionsfähiger Lesezeichenordner in der nav-bar, oder sonstwo, benutzbar als verschiebbarer toolbar Button , das wäre ein Träumchen .

    So ganz verstehe ich die Diskussion allerdings nicht. Diesen verschiebbaren Button gibt es doch schon standardmäßig im Firefox?!. Nennt sich "Lesezeichen-Menü" und macht doch genau das, was du haben möchtest... :/ (Die nicht benötigten Einträge/Ordner kann man ja sicherlich mit CSS oder UserSkript entfernen).

  • Mittelklick in leeren Bereich der Tableiste deaktivieren

    • BrokenHeart
    • 10. Januar 2023 um 11:35

    Gern geschehen... :)

  • Mittelklick in leeren Bereich der Tableiste deaktivieren

    • BrokenHeart
    • 9. Januar 2023 um 21:40
    Zitat von Thunderstruck

    ich suche eine Möglichkeit, den Mittelklick in den leeren Bereich der Tab-Leiste zu deaktivieren

    Bitte mal testen:

    JavaScript
    //NoMiddleClickOnTabBar.uc.js
    
    (function() {
        if (!window.gBrowser){
            return;
        }
        gBrowser.tabContainer.addEventListener('click', function(event) {
            if (event.button == 1) {
                if(event.target.parentNode.id == "tabbrowser-tabs") {
                    event.preventDefault();
                    event.stopPropagation();    
                    return;
                 }
             }
        }, true);
    })();
    Alles anzeigen
  • Script für Datums- & Zeitanzeige

    • BrokenHeart
    • 8. Januar 2023 um 10:25
    Zitat von Mira_Belle

    das die "Anzeige" flexibel positionierbar wird/ist.


    So in etwa stelle ich es mir vor.

    Das kann ich noch anbieten: rechtsbündig in der Menüleiste mit und ohne Titelleiste.

    JavaScript
    // DateandClock.us.js
    // Source file https://www.camp-firefox.de/forum/thema/122763-script-datum-uhrzeit-neben-men%C3%BCleiste/?postID=1182704#post1182704
    
    (function() {
        
        if (!window.gBrowser){
            return;
        }
        
        function doDatClock() {
            let date = new Date();
            var timestr = date.toLocaleDateString( locale, { weekday: "long", year: "numeric", month: "long", day: "numeric"} ) + 
                          ' - ' + date.toLocaleTimeString( locale, { hour: '2-digit', minute: '2-digit', second: '2-digit' } ) + 
                          ' Uhr'; 
    
            if( count == 1 ) {
                var counter = new Date( 2000 * sec ).toISOString().substr( 11 , 8 ); // .replace(/^[0:]+/, '') // if you want to replace zeroes and colons
                timestr = timestr + ' (' + counter + ')';
                sec++;
            }
            ClockLabel.setAttribute( 'value', timestr );
        }
        
        var count = 0; // if you don't want a counter set this to zero
        var language = 'de-DE'; // locale, e.g. 'de-DE' , 'en-US' , 'fr-FR'
        var cssFontFamily = 'Arial';
        var cssColor = '#FFBD4F'; // Font Color
    
        var css = 'padding-top: 5px !important; color: ' + cssColor + '; font-family: ' + cssFontFamily + '; font-weight:400; font-size:16px; text-shadow: none;';
        
        var sec = 0;
    
        var locale = language || window.navigator.languages[0];
    
        let position = document.querySelector("toolbar#toolbar-menubar spacer");
        position.style.MozBoxOrdinalGroup = "1";
    
        var ClockLabel = document.createXULElement('label');
        
        ClockLabel.setAttribute('id', 'titlebar-clock-display');
        ClockLabel.setAttribute('class', 'titlebarpanel-text');
        ClockLabel.setAttribute('style', css);    
        ClockLabel.style.MozBoxOrdinalGroup = "1000";
        position.parentNode.insertBefore(ClockLabel, position.nextSibling );
        
        
        if( count == 1 ) {
            ClockLabel.addEventListener('dblclick', function() { sec = 0; });
        }
        
        window.setInterval( doDatClock , 1000 );
    })();
    Alles anzeigen

    Für "Flexibel positionierbar" müsste man das Anzeige-Element anders erzeugen bzw. eine andere Klasse verwenden.

  • Script für Datums- & Zeitanzeige

    • BrokenHeart
    • 8. Januar 2023 um 00:50
    Zitat von Mira_Belle

    Oder zumindest sich rechts am Rand der Menübar ausrichten,damit die Anzeige auch rechts sich positionieren lässt.

    Damit die Anzeige rechtsbündig ist, muss das Label an den Titelbar-Icons (min/max/close) ausgerichtet werden.

    Das replace von visoer ist sicher eine gute und praktikable Lösung, da die Funktion aber jede Sekunde aufgerufen wird, sollte man vielleicht die Datums und Zeitanzeige getrennt aufrufen und dann einfach den String zusammenführen. So wird dieses selten dämliche 'um' bzw. 'at' erst gar nicht erzeugt und man muss es nicht entfernen. Keine Ahnung was das soll, in Firefox 91esr war das auf jeden Fall noch nicht drin... :/

    JavaScript
    // DateandClock.us.js
    // Source file https://www.camp-firefox.de/forum/thema/122763-script-datum-uhrzeit-neben-men%C3%BCleiste/?postID=1182704#post1182704
    
    (function() {
        
        if (!window.gBrowser){
            return;
        }
        
        function doDatClock() {
            date = new Date();
            var timestr = date.toLocaleDateString( locale, { weekday: "long", year: "numeric", month: "long", day: "numeric"} ) + 
                          ' - ' + date.toLocaleTimeString( locale, { hour: '2-digit', minute: '2-digit', second: '2-digit' } ) + 
                          ' Uhr'; 
    
            if( count == 1 ) {
                var counter = new Date( 2000 * sec ).toISOString().substr( 11 , 8 ); // .replace(/^[0:]+/, '') // if you want to replace zeroes and colons
                timestr = timestr + ' (' + counter + ')';
                sec++;
            }
            ClockLabel.setAttribute( 'value', timestr );
        }
        
        var count = 0; // if you don't want a counter set this to zero
        var language = 'de-DE'; // locale, e.g. 'de-DE' , 'en-US' , 'fr-FR'
        var cssFontFamily = 'Arial';
        var cssColor = '#FFBD4F'; // Font Color
    
        var css = 'padding-top: 5px !important; color: ' + cssColor + '; font-family: ' + cssFontFamily + '; font-weight:200; font-size:16px; text-shadow: none;';
        
        var sec = 0;
    
        var locale = language || window.navigator.languages[0];
    
        var position = document.getElementsByClassName('titlebar-button titlebar-min')[0];
                  
        var ClockLabel = document.createXULElement('label');
        
        ClockLabel.setAttribute('id', 'titlebar-clock-display');
        ClockLabel.setAttribute('class', 'titlebarpanel-text');
        ClockLabel.setAttribute('style', css);    
        position.parentNode.insertBefore(ClockLabel, position );
        
        if( count == 1 ) {
            ClockLabel.addEventListener('dblclick', function() { sec = 0; });
        }
        
        window.setInterval( doDatClock , 1000 );
    })();
    Alles anzeigen
  • Schaltfläche um Lesezeichen Leiste ein/auszublenden ?

    • BrokenHeart
    • 7. Januar 2023 um 12:25
    Zitat von Horstmann

    Ohne CSS macht es nix; ist so gewollt v.a. für einige andere Experimente mit vertikalen Toolbars etc., wo dann noch mehrere andere selbstdefinierte .class Attribute zusätzlich verwendet werden .

    Ok, alles klar! :thumbup:

  • Schaltfläche um Lesezeichen Leiste ein/auszublenden ?

    • BrokenHeart
    • 7. Januar 2023 um 10:28
    Zitat von Horstmann

    Edit: Leider zu früh gefreut - mit der Änderung im Code funktioniert das Tastaturkürzel nicht mehr , nur noch der Button . :?:

    Abgesehen davon, dass bei mir dein Script überhaupt nicht funktioniert, kannst du das mal testen:

    JavaScript
    //Toggle PersonalToolbar
    
    (function ptbut() {
        
         if (location.href !== 'chrome://browser/content/browser.xhtml')
           return;
    
        try {
            CustomizableUI.createWidget({
                id: 'PersonalToolbar-button',
                type: 'custom',
                defaultArea: CustomizableUI.AREA_NAVBAR,
                    onBuild: function(aDocument) {
                        let toolbaritem = aDocument.createXULElement('toolbarbutton');
                        let props = {
                            id: 'PersonalToolbar-button',
                            class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                            removable: true,
                            label: 'Toggle Bookmarks',
                            tooltiptext: 'Toggle Bookmarktoolbar',
                        };
                                       for(var p in props)
                            toolbaritem.setAttribute(p, props[p]);
                        return toolbaritem;
                    }
            });
        } catch(e) { };
    
    document.getElementById('PersonalToolbar-button').addEventListener( "click", onClick );
        
    document.addEventListener('keydown', (event) => {
            let keyName = event.key;
    
           // Mac German keyboard shortcut Cmd + < 
            if (event.metaKey && keyName == '<') {
               PersonalToolbar.classList.toggle("low-mode");
            }
        }, false
    );
        function onClick(aEvent) {
                     if (aEvent.button == 0) {
                         console.log("Click");
           PersonalToolbar.classList.toggle("low-mode");
        }
    }
    
    })();
    Alles anzeigen

Unterstütze uns!

Jährlich (2026)

32,8 %

32,8% (213,31 von 650 EUR)

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