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

  • Die Symbole/Buttons in der Symbolleiste vergrößern

    • Mira_Belle
    • 5. Januar 2023 um 14:01

    Habe es auch getestet, funktioniert bei mir.

    CSS
    #nav-bar toolbarbutton {
        transform: scale(1.2) !important;
    }
  • Schaltflächenskripte und ihre Symbole

    • Mira_Belle
    • 5. Januar 2023 um 13:36

    @Sören Hentzschel

    Und wieder einmal ein Danke!

    Ich nutze jetzt eine Mischung aus beidem.

    JavaScript
    let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome'));
    let buttonicon = "bookmark-hollow.svg";
    style: "list-style-image: url('" + ProfilePath + "/icons/" + buttonicon + "');"

    Das mit dem Profilpfad fand ich schon cool,

    nur die Sache mit dem IconPath gefiel mir nicht!

    Deshalb die Mischung.

    So habe ich den Profilpfad und das Symbol getrennt!

    Gäbe es denn die Möglichkeit, den Profilpfad auf "chrome" und einen Ordner darunter zu verknüpfen?

    Denn ...

    JavaScript
    let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome/icon'));

    ... funktionierte bei mir nicht.

    Und ...

    JavaScript
    let IconPath = "/icons/";

    extra noch anzulegen, nur um dann ...

    JavaScript
    style: "list-style-image: url('" + ProfilePath + IconPhath + buttonicon + "');"

    ... daraus zu machen, macht m.M. auch nicht wirklich Sinn, finde ich.

    Sieht halt vielleicht schöner aus.

  • Schaltflächenskripte und ihre Symbole

    • Mira_Belle
    • 5. Januar 2023 um 01:58

    Oha, ich habe da einen Fehler drinnen!

    JavaScript
    style: "list-style-image: url('" + ProfilePath + IconPath + "');"

    Man beachte die " "!

  • Schaltflächenskripte und ihre Symbole

    • Mira_Belle
    • 5. Januar 2023 um 01:17

    :/

    Was habe ich denn durch das ganze gewonnen?

    Ich nutze :

    JavaScript
    let currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");  // Pfadangabe zum Profilordner
    let buttonicon = "test.png"  // Name & Dateiendung des anzuzeigenden Symbols
    style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/icons/" + buttonicon) +'");',

    Und "/chrome/icons/" könnte ich auch noch in eine Variable packen,

    nur wofür das ganze oben?

    OK, da in meiner userChromeShadow.uc.js die Variable let path = PathUtils.join(PathUtils.profileDir, 'chrome', 'userChromeShadow.css'); angelegt ist,

    könnte ich auch die Variable let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome'));

    zum chrome-Ordner nutzen.

    Dann würde wohl sich der Code so ändern

    JavaScript
    let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome'));
    
    let buttonicon = "test.png";
    
    style: "list-style-image: url('" + ProfilePath + "/icons/" + buttonicon) +"');"

    Aber habe ich dadurch irgendwas gewonnen? :/

    Und wenn ich jetzt noch aus "/icons/" + buttonicon => IconPath mache, ...

    OK, ist etwas kürzerer Code.

    JavaScript
    style: 'list-style-image: url('" + ProfilePath + IconPath ) +"');'

    So habe ich mir wohl selbst die Antwort erarbeitet,

    und das zu so später Stunde.

  • Allgemeine Frage(n) zu JavaScript

    • Mira_Belle
    • 4. Januar 2023 um 23:09

    Danke Sören.

    Wieder etwas gelernt, so hoffe ich. ;)

    1.) Die Prüfung auf browser.xul werde ich so dann in all meinen Scripten entfernen. Erledigt.

    2.) Und das mit den Variablen dann auch gleich umsetzen. Auch erledigt.

  • Allgemeine Frage(n) zu JavaScript

    • Mira_Belle
    • 4. Januar 2023 um 22:24

    Also ich glaube, Ihr wollt mir verklickern, dass mein Ansatz die Variablen vor die Funktion zu stellen,

    nicht so prickelnd war.

    Ist es denn dann besser den Code so:

    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 {
    ...
    Alles anzeigen

    oder so:

    JavaScript
    // Navbar.us.js
    (function nbbut() {
            if (location.href !== 'chrome://browser/content/browser.xul' && location.href !== 'chrome://browser/content/browser.xhtml') return;
    
    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');
    
            try {
    ...
    Alles anzeigen

    ... zu schreiben?

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

    • Mira_Belle
    • 4. Januar 2023 um 22:18

    Ich zitiere mich mal selber. ;)

    Zitat von Mira_Belle

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

    Deshalb.

    Und genau so hat es bei mir im Juni 2021 auch angefangen,

    und was war das für eine Heidenarbeit, den ganzen Kram auseinander zu puzzeln.

    Also lieber gleich von Anfang an Struktur.

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

Unterstütze uns!

Jährlich (2025)

105,8 %

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

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