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

Beiträge von Mira_Belle

  • Allgemeine Frage(n) zu JavaScript

    • Mira_Belle
    • 4. Januar 2023 um 21:57

    @ BrokenHeart

    Danke für Deine Mühe mir es zu erklären, aber ich verstehe nur Bahnhof!

    Sollten die Variablen nun so wie im ersten Beispiel vor der Funktion stehen,

    oder eher in der Funktion?

    Wenn ich Dich richtig verstanden habe, dann wohl eher in der Funktion, oder?

    Und wie ich dann vermute, ist es so, wie ich oben schon schrieb, beide Scripte kommen sich mit ihren Variablen ins Gehege.

    Z.b.

    JavaScript
    // Button_PersonalToolbar.uc.js
    let startHeight = '0px';
    ...
    let visible = '24px';
    ...
    let buttonicon = "bookmark-hollow.svg"
    
    
    // Navbar.us.js
    let startHeight = '24px';
    ...
    let visible = '32px';
    ...
    let buttonicon = "refresh_ie8.png"
    Alles anzeigen

    Das wären dann gleich drei Stolpersteine, richtig?

    Denn wenn ich mir überlege beide Scripte in eine Datei zuschreiben, ...

    Das kann ja dann nicht gut gehen.

  • Allgemeine Frage(n) zu JavaScript

    • Mira_Belle
    • 4. Januar 2023 um 15:58

    OK.

    So funktioniert das Script.

    JavaScript
    // Navbar.us.js
    (function nbbut() {
    let startHeight = '24px';                // '24px' oder '0px' Der Startzustand wird definiert: '24px' startet mit sichtbarer Leiste
    let autoCloseTime = 5000;                  // 0 = kein Auto-Close / >0 Zeit in Millisekunden /5000 => 5sec 
    let collapse = '0px';                   // Leiste nicht sichtbar
    let visible = '32px';                   // Leiste sichtbar / normal ist '36px' (Hoehe der Leiste im ausgeklappten Zustand)
    let buttonicon = "refresh_ie8.png"      // Name & Dateiendung des anzuzeigenden Symbols
    let intervalID = 0;
    let currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/"); // Pfadangabe zum Profilordner
    
    let persNavbar = document.getElementById('nav-bar');
    
    
         
    
            if (location.href !== 'chrome://browser/content/browser.xul' && location.href !== 'chrome://browser/content/browser.xhtml') return;
            try {
                CustomizableUI.createWidget({
                    id: 'nav-bar-button',
                    type: 'custom',
                    defaultArea: CustomizableUI.AREA_NAVBAR,
                        onBuild: function(aDocument) {
                            let toolbaritem = aDocument.createXULElement('toolbarbutton');                  
                            let props = {
                                id: 'nav-bar-button',
                                class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                                removable: true,
                                label: 'Toggle',
                                tooltiptext: 'NavBar on/off',
                                style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/image/" + buttonicon) +'");',
                            };                   
                            for(var p in props)
                                toolbaritem.setAttribute(p, props[p]);
                            return toolbaritem;                 
                        }
                });
                CustomizableUI.registerToolbarNode(tb);
            } 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;
    // Funktion wird ausgeführt, wenn "AltGr & w gedrückt werden
        if (event.altKey && keyName == 'w') {
            onClick();
        }
    }, false
    );
    //----------ENDE------------------------ 
    
        
        document.getElementById('nav-bar').style.minHeight = '0';
        document.getElementById('nav-bar').style.transition = 'all 0.3s steps(6, end)';
    
            if( startHeight === visible || startHeight === collapse ) {
                document.getElementById('nav-bar').style.height = startHeight;
           }
            else {
                document.getElementById('nav-bar').style.height = visible;
            }
            document.getElementById('nav-bar-button').addEventListener( "click", onClick );
    
            function onClick(aEvent) {
                if (persNavbar.style.height == '') {
                    persNavbar.style.height = collapse;
                     }
                else if (persNavbar.style.height == visible) {
                    persNavbar.style.height = collapse;
                     }
                else if(persNavbar.style.height == collapse) {
                    persNavbar.style.height = visible;
                    if(!intervalID && autoCloseTime) {
                        intervalID =  aEvent.target.ownerGlobal.setInterval( autoClose, autoCloseTime );
                    }
                }
              }
             
              function autoClose() {
                if( intervalID ) {
                    if( persNavbar.style.height == visible) {
                        persNavbar.style.height = collapse;
                        clearInterval(intervalID); 
                        intervalID=0;
                    }
                }
            }
        })();
    Alles anzeigen

    Und so dann nicht mehr!

    JavaScript
    // Navbar.us.js
    let startHeight = '24px';                // '24px' oder '0px' Der Startzustand wird definiert: '24px' startet mit sichtbarer Leiste
    let autoCloseTime = 5000;                  // 0 = kein Auto-Close / >0 Zeit in Millisekunden /5000 => 5sec 
    let collapse = '0px';                   // Leiste nicht sichtbar
    let visible = '32px';                   // Leiste sichtbar / normal ist '36px' (Hoehe der Leiste im ausgeklappten Zustand)
    let buttonicon = "refresh_ie8.png"      // Name & Dateiendung des anzuzeigenden Symbols
    let intervalID = 0;
    let currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/"); // Pfadangabe zum Profilordner
    let persNavbar = document.getElementById('nav-bar');
      
    (function nbbut() {
            if (location.href !== 'chrome://browser/content/browser.xul' && location.href !== 'chrome://browser/content/browser.xhtml') return;
            try {
                CustomizableUI.createWidget({
                    id: 'nav-bar-button',
                    type: 'custom',
                    defaultArea: CustomizableUI.AREA_NAVBAR,
                        onBuild: function(aDocument) {
                            let toolbaritem = aDocument.createXULElement('toolbarbutton');                  
                            let props = {
                                id: 'nav-bar-button',
                                class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                                removable: true,
                                label: 'Toggle',
                                tooltiptext: 'NavBar on/off',
                                style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/image/" + buttonicon) +'");',
                            };                   
                            for(var p in props)
                                toolbaritem.setAttribute(p, props[p]);
                            return toolbaritem;                 
                        }
                });
                CustomizableUI.registerToolbarNode(tb);
            } 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;
    // Funktion wird ausgeführt, wenn "AltGr & w gedrückt werden
        if (event.altKey && keyName == 'w') {
            onClick();
        }
    }, false
    );
    //----------ENDE------------------------ 
    
        
        document.getElementById('nav-bar').style.minHeight = '0';
        document.getElementById('nav-bar').style.transition = 'all 0.3s steps(6, end)';
    
            if( startHeight === visible || startHeight === collapse ) {
                document.getElementById('nav-bar').style.height = startHeight;
           }
            else {
                document.getElementById('nav-bar').style.height = visible;
            }
            document.getElementById('nav-bar-button').addEventListener( "click", onClick );
    
            function onClick(aEvent) {
                if (persNavbar.style.height == '') {
                    persNavbar.style.height = collapse;
                     }
                else if (persNavbar.style.height == visible) {
                    persNavbar.style.height = collapse;
                     }
                else if(persNavbar.style.height == collapse) {
                    persNavbar.style.height = visible;
                    if(!intervalID && autoCloseTime) {
                        intervalID =  aEvent.target.ownerGlobal.setInterval( autoClose, autoCloseTime );
                    }
                }
              }
             
              function autoClose() {
                if( intervalID ) {
                    if( persNavbar.style.height == visible) {
                        persNavbar.style.height = collapse;
                        clearInterval(intervalID); 
                        intervalID=0;
                    }
                }
            }
        })();
    Alles anzeigen
  • Firefox-Design-Thema: Schriftart-Text mit Schatten-Effekten versehen

    • Mira_Belle
    • 4. Januar 2023 um 15:33
    Zitat von Gearth

    Besten Dank an alle für die Informationen! :)

    Jetzt habe ich das erreicht, was ich die ganze Zeit wollte.

    Bei weiteren Fragen wende ich mich wieder an euch.

    :thumbup: Sehr schön!

    Und immer wieder gerne doch.

  • Allgemeine Frage(n) zu JavaScript

    • Mira_Belle
    • 4. Januar 2023 um 15:29
    Zitat von Sören Hentzschel
    Zitat von Mira_Belle

    Nun gibt es Variablen, die funktionieren nicht, wenn man sie aus der Funktion heraus nimmt und an den Anfang verschiebt,

    z.B. let toolbaritem = aDocument.createXULElement('toolbarbutton'); […]


    Warum ist das so?

    Das sollte recht deutlich werden, wenn du deinen Blick nur auf diese Zeile und die darüber wirfst:

    JavaScript
    onBuild: function(aDocument) {
      let toolbaritem = aDocument.createXULElement('toolbarbutton');

    Du befindest dich in einer Funktion, welcher du den Parameter aDocument übergibst. In der Funktion wendest du

    createXULElement() auf eben dieses übergebene Element an. Wohin möchtest du die Zeile also verschieben? Außerhalb dieser Funktion existiert aDocument doch gar nicht.

    Zitat von Mira_Belle

    aber auch let props = ... kann man nicht "rausnehmen".

    Funktioniert bei mir. Da du dort allerdings auf currentProfileDirectory zugreifst, darf das natürlich auch erst nach dessen Definition folgen.

    Ob das wirklich etwas für die Übersichtlichkeit macht, sei mal hingestellt. Zum einen ist das für mich etwas Internes, was für die Funktionsweise des Scripts benötigt wird, und nicht wirklich der Konfiguration des Scripts dient. Da würde ich verstehen, wieso man das am Anfang haben will. Zum anderen nimmst du damit auseinander, was logisch zusammengehört. Denn du kannst weder den Code darüber noch den darunter, der genau das nutzt, verschieben.

    Alles anzeigen

    Danke für Deine Erklärungen.

    Ich hatte mir in etwa so etwas schon gedacht, dass es da Abhängigkeiten gibt.

    Nur mangels Wissen was JavaScript betrifft mir nicht genau erkären können.

    Jetzt weiß ich es. Danke.

    Zitat von Sören Hentzschel
    Zitat von Mira_Belle

    Noch konfuser macht mich ein anders Script!

    Da kann ich gar keine Variable an den Anfang verschieben und aus der Fuktion nehmen.

    Bitte präzisiere, was genau du verschieben möchtest. Die Erklärung dürfte ansonsten vermutlich eh die gleiche wie beim ersten Script sein.

    Nun, die Funktion steht in diesem Script gleich zu Anfang!

    Zeile 2 (function nbbut() {

    Wenn ich diese ((function nbbut() {) aber wie im anderen Script erst in Zeile 11 aufrufe, funktioniert das ganze Script nicht mehr!

    Vergleiche:

    JavaScript
    // Navbar.us.js
    (function nbbut() {
    let startHeight = '24px';                // '24px' oder '0px' Der Startzustand wird definiert: '24px' startet mit sichtbarer Leiste
    let autoCloseTime = 5000;                  // 0 = kein Auto-Close / >0 Zeit in Millisekunden /5000 => 5sec 
    let collapse = '0px';                   // Leiste nicht sichtbar
    let visible = '32px';                   // Leiste sichtbar / normal ist '36px' (Hoehe der Leiste im ausgeklappten Zustand)
    let buttonicon = "refresh_ie8.png"      // Name & Dateiendung des anzuzeigenden Symbols
    let intervalID = 0;
    let currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/"); // Pfadangabe zum Profilordner
    
    let persNavbar = document.getElementById('nav-bar');
    Alles anzeigen

    So funktioniert das Script!

    Und so ...

    JavaScript
    // Navbar.us.js
    let startHeight = '24px';                // '24px' oder '0px' Der Startzustand wird definiert: '24px' startet mit sichtbarer Leiste
    let autoCloseTime = 5000;                  // 0 = kein Auto-Close / >0 Zeit in Millisekunden /5000 => 5sec 
    let collapse = '0px';                   // Leiste nicht sichtbar
    let visible = '32px';                   // Leiste sichtbar / normal ist '36px' (Hoehe der Leiste im ausgeklappten Zustand)
    let buttonicon = "refresh_ie8.png"      // Name & Dateiendung des anzuzeigenden Symbols
    let intervalID = 0;
    let currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/"); // Pfadangabe zum Profilordner
    let persNavbar = document.getElementById('nav-bar');
    
    (function nbbut() {
    ...
    Alles anzeigen

    ... nicht mehr! :/

    Aber es ist doch genau so aufgebaut wie das Script Button_PersonalToolbar.uc.js

    welches ja genauso einwandfrei funktioniert!

    Wobei ich anmerken muss, dass das Javascript Button_PersonalToolbar.uc.js zum Testzeitpunkt

    auch aktiv war.

    Könnte es also sein, dass sich beide Scripts ins Gehege kommen?

  • Allgemeine Frage(n) zu JavaScript

    • Mira_Belle
    • 4. Januar 2023 um 12:14

    Ich habe so ein Problem mit einem Script.

    Normalerweise schreibe ich die Variablen ganz an den Anfang,

    das ist m.M. übersichtlicher und funktioniert auch meist.

    Hier ein Beispiel:

    JavaScript
    // Button_PersonalToolbar.uc.js
    let startHeight = '0px';                // '24px' oder '0px' Der Startzustand wird definiert: '24px' startet mit sichtbarer Leiste
    let autoCloseTime = 5000;               // 0 = kein Auto-Close / >0 Zeit in Millisekunden /5000 => 5sec 
    let collapse = '0px';                   // Leiste nicht sichtbar
    let visible = '24px';                   // Leiste sichtbar
    let buttonicon = "bookmark-hollow.svg"  // Name & Dateiendung des anzuzeigenden Symbols
    let intervalID = 0;
    let currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/"); // Pfadangabe zum Profilordner
    let persToolbar = document.getElementById('PersonalToolbar');
    
    (function ptbut() {              
        if (location.href !== 'chrome://browser/content/browser.xul' && 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',
                            tooltiptext: 'Lesezeichenleiste ein-/ausblenden',
                            style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/icons/" + buttonicon) +'");',
                        };                   
                        for(var p in props)
                            toolbaritem.setAttribute(p, props[p]);
                        return toolbaritem;                 
                    }
            });
            CustomizableUI.registerToolbarNode(tb);
        } 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;
    // Funktion wird ausgeführt, wenn "AltGr & q gedrückt werden
            if (event.altKey && keyName == 'q') {
                onClick();
            }
        }, false
        );
    //----------ENDE------------------------ 
    // Anmerkungen und beispiele am Ende des Scriptes
    
    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) {   
            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

    Nun gibt es Variablen, die funktionieren nicht, wenn man sie aus der Funktion heraus nimmt und an den Anfang verschiebt,

    z.B. let toolbaritem = aDocument.createXULElement('toolbarbutton');,

    aber auch let props = ... kann man nicht "rausnehmen".

    Warum ist das so?

    Noch konfuser macht mich ein anders Script!

    Da kann ich gar keine Variable an den Anfang verschieben und aus der Fuktion nehmen.

    Dieses:

    JavaScript
    // Navbar.us.js
    (function nbbut() {
    let startHeight = '24px';                // '24px' oder '0px' Der Startzustand wird definiert: '24px' startet mit sichtbarer Leiste
    let autoCloseTime = 5000;                  // 0 = kein Auto-Close / >0 Zeit in Millisekunden /5000 => 5sec 
    let collapse = '0px';                   // Leiste nicht sichtbar
    let visible = '32px';                   // Leiste sichtbar / normal ist '36px' (Hoehe der Leiste im ausgeklappten Zustand)
    let buttonicon = "refresh_ie8.png"      // Name & Dateiendung des anzuzeigenden Symbols
    let intervalID = 0;
    let currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/"); // Pfadangabe zum Profilordner
    
    let persNavbar = document.getElementById('nav-bar');
    
    
         
    
            if (location.href !== 'chrome://browser/content/browser.xul' && location.href !== 'chrome://browser/content/browser.xhtml') return;
            try {
                CustomizableUI.createWidget({
                    id: 'nav-bar-button',
                    type: 'custom',
                    defaultArea: CustomizableUI.AREA_NAVBAR,
                        onBuild: function(aDocument) {
                            let toolbaritem = aDocument.createXULElement('toolbarbutton');                  
                            let props = {
                                id: 'nav-bar-button',
                                class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                                removable: true,
                                label: 'Toggle',
                                tooltiptext: 'NavBar on/off',
                                style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/image/" + buttonicon) +'");',
                            };                   
                            for(var p in props)
                                toolbaritem.setAttribute(p, props[p]);
                            return toolbaritem;                 
                        }
                });
                CustomizableUI.registerToolbarNode(tb);
            } 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;
    // Funktion wird ausgeführt, wenn "AltGr & w gedrückt werden
        if (event.altKey && keyName == 'w') {
            onClick();
        }
    }, false
    );
    //----------ENDE------------------------ 
    
        
        document.getElementById('nav-bar').style.minHeight = '0';
        document.getElementById('nav-bar').style.transition = 'all 0.3s steps(6, end)';
    
            if( startHeight === visible || startHeight === collapse ) {
                document.getElementById('nav-bar').style.height = startHeight;
           }
            else {
                document.getElementById('nav-bar').style.height = visible;
            }
            document.getElementById('nav-bar-button').addEventListener( "click", onClick );
    
            function onClick(aEvent) {
                if (persNavbar.style.height == '') {
                    persNavbar.style.height = collapse;
                     }
                else if (persNavbar.style.height == visible) {
                    persNavbar.style.height = collapse;
                     }
                else if(persNavbar.style.height == collapse) {
                    persNavbar.style.height = visible;
                    if(!intervalID && autoCloseTime) {
                        intervalID =  aEvent.target.ownerGlobal.setInterval( autoClose, autoCloseTime );
                    }
                }
              }
             
              function autoClose() {
                if( intervalID ) {
                    if( persNavbar.style.height == visible) {
                        persNavbar.style.height = collapse;
                        clearInterval(intervalID); 
                        intervalID=0;
                    }
                }
            }
        })();
    Alles anzeigen

    Das ist doch nur eine Abwandlung des Skiptes Button_PersonalToolbar.uc.js!

    Baue ich es aber genau so auf, bzw. um, funktioniert es nicht mehr!

    Warum?

    Beißen sich etwa bestimmte Einträge beider Scripts und vertragen sich nicht?

  • Firefox-Design-Thema: Schriftart-Text mit Schatten-Effekten versehen

    • Mira_Belle
    • 4. Januar 2023 um 11:53

    Ergänzend würde ich vorschlagen Du lagerst 2002Andreas Code aus!

    Dh. Du schreibst in Deine userChrome.css nur Folgendes:

    @import url("shadow.css");

    Erstellst in Deinem Benutzerprofil unter chrome eine neue Datei eben mit genau diesem Namen
    und kopierst 2002Andreas Code da rein, speichern nicht vergessen. ;)


    Die shadow.css sollte dann so aussehen:

    CSS
    @-moz-document url(chrome://browser/content/browser.xhtml) {
    
      #main-menubar > menu {
          text-shadow: 3px 3px 4px white !important;
      }
      .tab-text {
          text-shadow: 3px 3px 4px white !important;
      }
    }

    OK, Du kannst, Du musst Dir den Schattenwurf, aber auch die Farbe des Schattens noch anpassen. ;)

    Spiel etwas mit den Werten herum und Du wirst sehen was passiert.

    Denke aber daran, nach jeder Änderung musst Du den Firefox neu starten!

  • Firefox-Design-Thema: Schriftart-Text mit Schatten-Effekten versehen

    • Mira_Belle
    • 4. Januar 2023 um 00:20
    Zitat von Gearth

    Nein, davon wusste ich bis jetzt überhaupt noch nichts.

    Na dann einfach mal machen, ist wirklich nicht schwer und langwierig ist es auch nicht.

    Sobald Du das erledigt hast, machen wir uns daran, der Schrift in der Menüleiste und in den Tabs

    einen Schatten zu verpassen.

    Und glaube mir, wenn Du erst einmal "Blut" geleckt hast, willst Du noch viel mehr ;) anpassen.

    Bis morgen.

  • Firefox-Design-Thema: Schriftart-Text mit Schatten-Effekten versehen

    • Mira_Belle
    • 3. Januar 2023 um 23:41

    Hast Du "Deinen" Firefox schon auf das Verwenden von CSS-Code vorbereitet?

    Thema

    Anpassungen von Firefox-Oberfläche mittels userChrome.css und Webseiten mittels userContent.css

    Neben den eingebauten Browser-Entwicklerwerkzeugen gibt es für Firefox eine weitere Möglichkeit, die Firefox-Oberfläche und die Gestaltung von Webseiten zu verändern. Dies geschieht mit Hilfe der Formatierungssprache CSS (Abkürzung für englisch Cascading Stylesheets) und den beiden Dateien userChrome.css für die Gestaltung der Firefox-Oberfläche und userContent.css für die Gestaltung von Webseiten nach den Wünschen der Firefox-Benutzer.

    Bis zur Einführung der Webextensions durch Mozilla war es…
    milupo
    10. Februar 2019 um 13:19
  • Firefox-Design-Thema: Schriftart-Text mit Schatten-Effekten versehen

    • Mira_Belle
    • 3. Januar 2023 um 23:14

    Herzlich willkommen und ein gutes neues Jahr!

    Oh ha! Nettes Spielzeug. ;)

    Welche Schrift soll denn mit Schattenwurf sein, oder besser gefragt, an welchen Stellen sollen "Wörter" einen Schatten haben?

    Und so simpel Deine Frage auch erscheint, so simpel wird die Umsetzung nicht sein.

    Aber :!: es ist möglich, und wenn es nicht möglich ist, wird es hier möglich gemacht. :D

  • In memoriam

    • Mira_Belle
    • 3. Januar 2023 um 15:11

    Du meintest dieses Video?

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Manche PDFs lassen sich nur noch speichern, nicht direkt öffnen?

    • Mira_Belle
    • 3. Januar 2023 um 12:42

    Egal welches PDF ich auch anklicke, sie wird im Browser geöffnet.

    Alles rund um Luftreinigung | Zehnder
    Referenzen, Produktinfos, Daten und Expertenrat zum Thema Luftverschmutzung am Arbeitsplatz. Jetzt mehr erfahren!
    www.zehnder-cleanairsolutions.com

    Heiz- und Kühldecken-­Systeme | Zehnder Group Deutschland GmbH

  • Wegen des Internet Explorers 11: Mozilla ändert User-Agent von Firefox

    • Mira_Belle
    • 1. Januar 2023 um 17:13

    Danke.

    Bein drüberschauen habe ich es zwar auch nicht wirklich verstanden, aber ich werde mir dafür mal etwas Zeit nehmen.

    Ist schon etwas komplexer, wie mir scheint.

  • Wegen des Internet Explorers 11: Mozilla ändert User-Agent von Firefox

    • Mira_Belle
    • 1. Januar 2023 um 16:15
    Zitat von .DeJaVu

    Ach ja...

    Ach komm.

    Mein Kommentar ist als Frage zu verstehen.

    Aber, ein gesundes, neues Jahr wünsch’ ich Dir.

    Und sei doch bitte so nett und erkläre es mir, wenn ich so mit meiner Vermutung daneben liege,

    denn ich verstehe es wirklich nicht.

  • Wegen des Internet Explorers 11: Mozilla ändert User-Agent von Firefox

    • Mira_Belle
    • 1. Januar 2023 um 15:57

    Verstehe ich nicht!

    HTML, CSS & JavaScript.

    Wenn sich jeder Webentwickler an allgemeingültige Standards hält,

    sollte es doch Wurscht sein, welcher Browser gerade die Page aufruft!

  • Lesezeichensymbolleiste leer

    • Mira_Belle
    • 30. Dezember 2022 um 23:01
    Zitat von Mira_Belle

    Äh, nö.

    style.visibility verursachte das Problem und entweder konnte man es lösen, indem man Deinen "Zusatz",

    (was genau ist/war dieser denn?) nutzte oder mit dem Umstellen des Scriptes auf style.height und Pixelwerten.

    Ich löse mal selbst das Rätsel.

    Du hast CSS-Code hinein gebastelt.

    JavaScript
         var css =`
       #PlacesToolbarItems {
      min-width: 200px !important;
      }    
       `;

    Und schreibst gleich im Anschluss, dass auch 10px reichen würden.

    Beitrag

    RE: Lesezeichensymbolleiste leer

    […]

    Teste doch bitte mal dieses geänderte Skript:(oder auch ein anderer user)

    (Quelltext, 73 Zeilen)

    2002Andreas
    28. Dezember 2022 um 16:57
  • Lesezeichensymbolleiste leer

    • Mira_Belle
    • 30. Dezember 2022 um 22:43
    Zitat von 2002Andreas

    Alle anderen Skripte haben also nichts mit seiner eigentlichen Frage zu tun, sondern sind eine "Zugabe".

    Äh, nö.

    style.visibility verursachte das Problem und entweder konnte man es lösen, indem man Deinen "Zusatz",

    (was genau ist/war dieser denn?) nutzte oder mit dem Umstellen des Scriptes auf style.height und Pixelwerten.

    Zwar hat nierewa geschrieben, dass er/sie 2002Andreas Script nutzt, aber der Einwand mit ...

    Zitat von nierewa

    Stimmt. Das habe ich hinbekommen.

    ... steht dazu aber im Wiederspruch.

    So ist mir auch weiterhin nicht klar, welches Script nierewa jetzt genau nutzt!

    Aber egal, es gibt nun mehre Varianten, die funktionieren und die auf verschiedene Weisen anpassbar sind.

    Wünsche allen einen Guten Rutsch und Frohes neues Jahr !

  • Lesezeichensymbolleiste leer

    • Mira_Belle
    • 30. Dezember 2022 um 21:46
    Zitat von nierewa

    Das Script was ich jetzt nutze ist das von.... Andreas

    ;(

    Nee, Spaß, die Hauptsache ist ja, dass Du Dein Problem gelöst (bekommen) hast.

  • Lesezeichensymbolleiste leer

    • Mira_Belle
    • 30. Dezember 2022 um 15:12
    Zitat von Horstmann

    Super, dankeschön ! :)

    Hier lernt man wirklich was dazu als Javascript Analphabet wie ich ;) ; eine Menge guter Tips in den verschiedenen Varianten . :thumbup:

    Gerne doch,

    und mir geht es da genau wie Dir.

    Und ganz ehrlich, Du hast ja auch einiges dazu beigetragen, dass es dieses Script gibt.

  • Lesezeichensymbolleiste leer

    • Mira_Belle
    • 30. Dezember 2022 um 12:11
    Zitat von 2002Andreas
    Zitat von Mira_Belle

    zu kombinieren.

    Muss er ja nicht, es gibt ja 2 Skripte hier mit der Tastenkombination.

    Das stimmt.

    Habe jetzt min. viermal den Thread durchgelesen, aber Horstmann hat recht!

    Es wird einem einfach nicht klar, welches Skript nierewa letzten Endes benutzt.


    Für den Fall, dass nierewa das Rätsel nicht mehr auflöst,

    biete ich hier das von mir überarbeitete und funktionierende JavaScript an.

    Es wurde die Animation integriert, sowie eine Tastenkombination!

    Bei dem Aktivieren der Leiste mittels Tastenkombination ist zu beachten, dass das automatische Schließen nicht funktioniert :!:

    Jedoch beim Benutzen des Buttons.

    JavaScript
    // Button_PersonalToolbar.uc.js
    // Source file https://www.camp-firefox.de/forum/thema/134920-schaltfl%C3%A4che-um-lesezeichen-leiste-ein-auszublenden/?postID=1213680#post1213680
    // Source file https://www.camp-firefox.de/forum/thema/134920-schaltfl%C3%A4che-um-lesezeichen-leiste-ein-auszublenden/?postID=1215809#post1215809
    // Source file https://www.camp-firefox.de/forum/thema/135748-lesezeichensymbolleiste-leer/?postID=1216410#post1216410
    // PersonalToolbar_ausblenden
    // basierend auf den Ideen von BrokenHeart und visoer, Verbesserungen von Horstmann und Anpassungen von Mira_Belle
    
    let startHeight = '0px';                // '24px' oder '0px' Der Startzustand wird definiert: '24px' startet mit sichtbarer Leiste
    let autoCloseTime = 5000;               // 0 = kein Auto-Close / >0 Zeit in Millisekunden /5000 => 5sec 
    let collapse = '0px';                   // Leiste nicht sichtbar
    let visible = '24px';                   // Leiste sichtbar
    let buttonicon = "bookmark-hollow.svg"  // Name & Dateiendung des anzuzeigenden Symbols
    let intervalID = 0;
    let currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/"); // Pfadangabe zum Profilordner
    let persToolbar = document.getElementById('PersonalToolbar');
    
    (function ptbut() {              
        if (location.href !== 'chrome://browser/content/browser.xul' && 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',
                            tooltiptext: 'Lesezeichenleiste ein-/ausblenden',
                            style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/icons/" + buttonicon) +'");',
                        };                   
                        for(var p in props)
                            toolbaritem.setAttribute(p, props[p]);
                        return toolbaritem;                 
                    }
            });
            CustomizableUI.registerToolbarNode(tb);
        } 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;
    // Funktion wird ausgeführt, wenn "AltGr & q gedrückt werden
            if (event.altKey && keyName == 'q') {
                onClick();
            }
        }, false
        );
    //----------ENDE------------------------ 
    // Anmerkungen und beispiele am Ende des Scriptes
    
    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) {   
            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;
                }
            }
        }
    })();
    
    // Funktion wird ausgeführt, wenn STRG + Alt + l gedrückt wird
    //  if (event.ctrlKey && event.altKey && keyName == 'l') {       
    
    // Funktion wird ausgeführt, wenn STRG + w gedrückt werden
    //if (event.ctrlKey && keyName == 'w') {
    Alles anzeigen
  • Lesezeichensymbolleiste leer

    • Mira_Belle
    • 30. Dezember 2022 um 11:27
    Zitat von 2002Andreas
    Zitat von Mira_Belle

    Ich vermute, es ist "mein" Script gemeint.

    Und ich denke eher nicht, denn da fehlt die Funktion mit der Tastenkombination wie im Beitrag Nr. 1 im Skript.

    Das stimmt, aber ich glaube doch, dass nierewa imstande ist, zu kombinieren.

    visoer hat ja an vielen Stellen in diesem Thread und in dem Anderen aufgezeigt, wie der Code für die

    Tastenkombination auszusehen hat und wo er hingehört.

    Z.B:

    Beitrag

    RE: Lesezeichensymbolleiste leer

    @Mira_Belle

    […]

    Bei deinem Script geht das bei mir so:

    (Quelltext, 16 Zeilen)

    visoer
    22. Dezember 2022 um 15:23

    Aber auch hier gilt wieder, Aufklären musste es nierewa :!:

Unterstütze uns!

Jährlich (2026)

69,4 %

69,4% (538,17 von 775 EUR)

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