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

  • Symbol von Firefox Translate in die Statusleiste/AddOns-Leiste verschieben

    • Mira_Belle
    • 21. März 2023 um 15:52
    Zitat von Boersenfeger

    Habe gerade festgestellt, das sowohl in URL-Leiste als auch in meiner "Status-Zeile oder Addon-Leiste" ein entsprechender funktionsfähiger Button erscheint.

    Also geht es nunmehr nur noch darum, diesen aus der URL-Bar auszublenden. :P

    Entsprechend werde ich den Threadtitel ändern.

    BTW: Ich habe die Erweiterung mal bewertet und einen entsprechenden Kommentar hinterlassen:

    The expansion is great! However, I wish it were possible to hide the icon/button from the URL bar.

    Ich nehme gerne weitere Vorschläge an, vielleicht geht das Ausblenden ja doch mit einem Code!?

    Alles anzeigen

    Wie das?

    Und per CSS, wie bereits mehr mals erwähnt lässt sich dann ....

    CSS
    #pageAction-urlbar-firefox-translations-addon_mozilla_org {
      display: none !important;
    }

    Zitat von Sören Hentzschel
    JavaScript
    /* Statusleiste für Firefox */

    Ich hab das nur über die Browserkonsole getestet und das funktioniert. Ich habe aber keine Möglichkeit, das als richtiges Script zu testen. Sollte die Erweiterungsschaltfläche noch nicht verfügbar sein, wenn dieser Code ausgeführt wird, muss das jemand anderes fertigstellen.

    Habe ich soeben gemacht!

    Bekomme eine "Statusleiste" am unteren Fensterrand, sieht schön aus, aber die Leiste, die ist leer!

    Kein Botton vorhanden.

    Aber, ich kann meine Buttons z.B. die aus der Menüleiste oder jene aus der Lesezeichenleiste, sprich eigentlich alle

    in diese neu Leiste ziehen.

  • JavaScript erlernen. Übungen mit "Firefox Translate" aus der URL-Leiste

    • Mira_Belle
    • 21. März 2023 um 14:32
    Zitat von Sören Hentzschel

    Wozu? Wenn du den Button einfach nur verschiebst (siehe anderer Thread), musst du auch nichts neu implementieren, was längst vorhanden ist.

    :/ Ich denke, Du meinst es nur gut, aber da ich von JavaScript selber so gar keine Ahnung habe,

    kann ich auch mit Deinem Code nicht wirklich etwas anfangen!

    Ich habe also keine Ahnung, ob ich eines von beiden Scripten hier verwenden kann,

    geschweige denn, wenn Dein Code da nur reingebastelt werden könnte, wo und wie.

    Was ich kann, ich kann ein vorhandenes JavaScript lesen und ein klein wenig nachvollziehen, was da passiert.

    Hier und/oder da, ist es mir auch möglich ein solches JavaScript ein kleines bisschen zu verändern,

    das war es aber auch schon.

  • Symbol von Firefox Translate in die Statusleiste/AddOns-Leiste verschieben

    • Mira_Belle
    • 21. März 2023 um 13:39
    Zitat von 2002Andreas
    Zitat von Mira_Belle

    der Übersichtlichkeit wegen meine Beiträge löschen.

    Ok.

    Habe mich gegen das Löschen entschieden, denn es reißt auch Löscher in diesen Thread

    und damit ist auch niemandem geholfen.

    Denke aber, dass dieser Beitrag und auch Deiner Andreas gelöscht werden könnten.

  • JavaScript erlernen. Übungen mit "Firefox Translate" aus der URL-Leiste

    • Mira_Belle
    • 21. März 2023 um 13:25

    Eigentlich wollte ich in diesem Beitrag: https://www.camp-firefox.de/forum/thema/136122/ von Boersenfeger nur helfen,

    doch es kam anders!

    Ich wurde gebeten einen neuen, eigenen Thread aufzumachen, was ich hiermit getan habe.


    Also, habe es geschafft einen Button für das Vorhaben zu "erschaffen".

    Was mir jedoch nicht gelingen will, dass bei Betätigen eben die richtige Aktion ausgelöst wird :!:

    Werde mich weiter darum bemühen.

    Das Icon in der Adresszeile ließe sich ja dann per CSS ausblenden.

    Hier mal der bisherige Stand:

    JavaScript
    (function() {
    
        if (location.href !== AppConstants.BROWSER_CHROME_URL) return;
        try {
           CustomizableUI.createWidget({
              id: 'link-button-Translations',
              type: 'custom',
              defaultArea: CustomizableUI.AREA_NAVBAR,
              onBuild: function(aDocument) {         
                 let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                 let currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");  // Pfadangabe zum Profilordner
                 let buttonicon = "translation-color.svg"  // Name & Dateiendung des anzuzeigenden Symbols
                 toolbaritem.onclick = event => onClick(event);
                 var props = {
                    id: 'link-button-Translations',
                    class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                    removable: 'true',
                    label: 'Quicklink: Firefox Translations',
                    accesskey: '',
                    tooltiptext: 'Firefox Translations',
                    style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/icons/" + buttonicon) +'");',
                    onclick: 'if (event.button == 0) { \ openTrustedLinkIn("about:about", "tab");\ }; '
    
                };            
                for (var p in props)
                toolbaritem.setAttribute(p, props[p]);            
                return toolbaritem;
             }      
          });
       } catch(e) { };
    }) ();
    Alles anzeigen

    Und das Symbol (Icon):

    icons.zip


    Bin nun einen klitzekleinen Schritt weiter!

    Habe mit den Browser-Werkzeugen den Button "Firefox Translations" untersucht.

    Dabei fiel mir die Schaltfläche event auf.

    Also draufgeklickt und da wird etwas angezeigt.

    Da steht click!

    Also wird da auf ein JavaScript verwiesen.

    Dieses habe ich dann mal "extrahiert" und als Test.us.js in meinem Scriptordner gespeichert.

    Nun wieder zu dem oben gezeigten JavaScript!

    Ich dachte mir schon, dass ich mit dem onklickgedöhns etwas machen muss!

    Hab' ich auch!

    Und funktioniert auch so weit, aber ...

    es tut sich nichts, wenn das Test.us.js -Script durch einen klick aufgerufen wird :!:

    JavaScript
    (function() {
       if (location.href !== AppConstants.BROWSER_CHROME_URL) return;
       try {
          CustomizableUI.createWidget({
             id: 'link-button-Translations',
             type: 'custom',
             defaultArea: CustomizableUI.AREA_NAVBAR,
             onBuild: function(aDocument) {         
                let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                let currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");  // Pfadangabe zum Profilordner
                let buttonicon = "translation-color.svg"  // Name & Dateiendung des anzuzeigenden Symbols
                toolbaritem.onclick = event => onClick(event);
                let props = {
                   id: 'link-button-Translations',
                   class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                   removable: 'true',
                   label: 'Quicklink: Firefox Translations',
                   accesskey: '',
                   tooltiptext: 'Firefox Translations',
                   style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/icons/" + buttonicon) +'");',
    //               onclick: 'if (event.button == 0) { \ openTrustedLinkIn("about:about", "tab");\ }; '
                };            
                for (var p in props)
                   toolbaritem.setAttribute(p, props[p]);            
                return toolbaritem;
             }      
          });
       } catch(e) { };
    
       function onClick(event) {
          if (event.button != 0) { return; }
     
          var dir = Services.dirsvc.get('ProfD', Ci.nsIFile).path.replace(/\\/g, "/");
          dir.append('Test.uc.js');
          dir.launch();
    
       }
    
    }) ();
    Alles anzeigen

    Leider komme ich nicht weiter,

    daher bitte ich um Hilfe aborix oder BrokenHeart

  • Symbol von Firefox Translate in die Statusleiste/AddOns-Leiste verschieben

    • Mira_Belle
    • 21. März 2023 um 13:05
    Zitat von Boersenfeger

    @Mira-Belle: Bitte handele deinen Wunsch doch in einem Extra Thread ab.

    Oh.

    Ich wollte nur helfen, ...

    Und ich dachte, einen frei verschiebbaren Button mit gewünschter Funktion wäre auch in Deinem Interesse.

    Na dann, nimm den Code von Sören und integriere ihn in Dein Script, dann ist es so wie Du es gerne hättest.

    2002Andreas

    Habe wie gewünscht einen neuen Thread aufgemacht.

  • Symbol von Firefox Translate in die Statusleiste/AddOns-Leiste verschieben

    • Mira_Belle
    • 21. März 2023 um 12:41
    Zitat von 2002Andreas

    Sinnvoll wäre es doch, den Button kompl. incl. seiner Funktion zu verschieben, und nicht extra einen neuen zu erstellen, und den alten dann auch noch ausblenden zu müssen :/

    Und wenn er nicht frei verschiebbar ist, dann eben einen genauen Platz/Ort dafür im Skript angeben, wie es auch im Skript extras_config_menu.uc.js gemacht wird.

    Ich habe es versucht!

    Hatte als Vorlage das Script des Erweiterungs-Buttons genommen,

    aber auch das Script der Hamburgermenüs brachte mich nicht wirklich weiter.

    Und dabei sah das Script des Erweiterungs-Buttons so vielversprechend aus.

    Aber der Button in der Adresszeile ist eben kein Button, zumindest nicht so, wie der für das Erweiterungsmenü,

    oder eben das Hamburgermenü und daran scheitert es bei mir.

    Denn wirklich JavaScript kann ich nicht.

  • Symbol von Firefox Translate in die Statusleiste/AddOns-Leiste verschieben

    • Mira_Belle
    • 21. März 2023 um 11:40

    Hi Boersenfeger, ich kann mit "Statusleiste" jetzt nicht wirklich so viel anfangen,

    aber der erzeugte Button ist frei verschiebbar und Du solltest ihn dann auch in Deine "Statusleiste" verfrachten können.

    Aber bis jetzt funktioniert er ja nicht wirklich.

    Und wie ich schon anmerkte, lässt sich die "Schaltfläche" in der Adresszeile per CSS ausblenden,

    diesen Code würde ich dann natürlich auch in das JavaScript integrieren wollen. (lassen)

    Ich bitte um Hilfe aborix oder BrokenHeart

  • Symbol von Firefox Translate in die Statusleiste/AddOns-Leiste verschieben

    • Mira_Belle
    • 21. März 2023 um 10:46

    Apropos Test.us.js es funktioniert ja.

    Denn wenn ich in der Adresszeile auf den Button klicke, öffnet sich ja unten die Leiste!

    Ich denke, es hat mit dem Verweis direkt auf Zeile 540 zu tun,

    nur ich kann mit der Zahl 25 nach dem Doppelpunkt nichts anfangen.

    Ich müsste also auch direkt irgendwie darauf Zeile 540:25 verweisen, aber wie?

  • Symbol von Firefox Translate in die Statusleiste/AddOns-Leiste verschieben

    • Mira_Belle
    • 21. März 2023 um 10:13

    Bin nun einen klitzekleinen Schritt weiter!

    Habe mit den Browser-Werkzeugen den Button "Firefox Translations" untersucht.

    Dabei fiel mir die Schaltfläche event auf.

    Also draufgeklickt und da wird etwas angezeigt.

    Da steht click!

    Also wird da auf ein JavaScript verwiesen.

    Dieses habe ich dann mal "extrahiert" und als Test.us.js in meinem Scriptordner gespeichert.

    Nun wieder zu dem oben gezeigten JavaScript!

    Ich dachte mir schon, dass ich mit dem onklickgedöhns etwas machen muss!

    Hab' ich auch!

    Und funktioniert auch so weit, aber ...

    es tut sich nichts, wenn das Test.us.js -Script durch einen klick aufgerufen wird :!:

    JavaScript
    (function() {
       if (location.href !== AppConstants.BROWSER_CHROME_URL) return;
       try {
          CustomizableUI.createWidget({
             id: 'link-button-Translations',
             type: 'custom',
             defaultArea: CustomizableUI.AREA_NAVBAR,
             onBuild: function(aDocument) {         
                let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                let currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");  // Pfadangabe zum Profilordner
                let buttonicon = "translation-color.svg"  // Name & Dateiendung des anzuzeigenden Symbols
                toolbaritem.onclick = event => onClick(event);
                let props = {
                   id: 'link-button-Translations',
                   class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                   removable: 'true',
                   label: 'Quicklink: Firefox Translations',
                   accesskey: '',
                   tooltiptext: 'Firefox Translations',
                   style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/icons/" + buttonicon) +'");',
    //               onclick: 'if (event.button == 0) { \ openTrustedLinkIn("about:about", "tab");\ }; '
                };            
                for (var p in props)
                   toolbaritem.setAttribute(p, props[p]);            
                return toolbaritem;
             }      
          });
       } catch(e) { };
    
       function onClick(event) {
          if (event.button != 0) { return; }
     
          var dir = Services.dirsvc.get('ProfD', Ci.nsIFile).path.replace(/\\/g, "/");
          dir.append('Test.uc.js');
          dir.launch();
    
       }
    
    }) ();
    Alles anzeigen
  • Symbol von Firefox Translate in die Statusleiste/AddOns-Leiste verschieben

    • Mira_Belle
    • 20. März 2023 um 22:24

    Also, habe es geschafft einen Button für das Vorhaben zu "erschaffen".

    Was mir jedoch nicht gelingen will, dass bei Betätigen eben die richtige Aktion ausgelöst wird :!:

    Werde mich weiter darum bemühen.

    Das Icon in der Adresszeile ließe sich ja dann per CSS ausblenden.

    Hier mal der bisherige Stand:

    JavaScript
    (function() {
    
        if (location.href !== AppConstants.BROWSER_CHROME_URL) return;
        try {
           CustomizableUI.createWidget({
              id: 'link-button-Translations',
              type: 'custom',
              defaultArea: CustomizableUI.AREA_NAVBAR,
              onBuild: function(aDocument) {         
                 let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                 let currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");  // Pfadangabe zum Profilordner
                 let buttonicon = "translation-color.svg"  // Name & Dateiendung des anzuzeigenden Symbols
                 toolbaritem.onclick = event => onClick(event);
                 var props = {
                    id: 'link-button-Translations',
                    class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                    removable: 'true',
                    label: 'Quicklink: Firefox Translations',
                    accesskey: '',
                    tooltiptext: 'Firefox Translations',
                    style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/icons/" + buttonicon) +'");',
                    onclick: 'if (event.button == 0) { \ openTrustedLinkIn("about:about", "tab");\ }; '
    
                };            
                for (var p in props)
                toolbaritem.setAttribute(p, props[p]);            
                return toolbaritem;
             }      
          });
       } catch(e) { };
    }) ();
    Alles anzeigen

    Und das Symbol (Icon):

    icons.zip

  • Der Glückwunsch-Thread

    • Mira_Belle
    • 18. März 2023 um 02:54

    Auch von mir <3lichen Glückwunsch.

  • Mehrere suchen nach einem begriff gleichzeitig

    • Mira_Belle
    • 17. März 2023 um 15:48
    Zitat von Mathamphetematiker
    ...

    aber zusätzlich konnte man jeder im addon eingetragenen suchmaschine ein kürzel zuweisen, und dann in die adresszeile beliebig viele kürzel, durch komma getrennt, vor dem suchbegriff angeben um für jede suche einen neuen tab öffnen zu lassen.

    Geht es Dir nur hierum?

    Habe es gerade einmal getestet, mit nur einem "Kürzel", z.B. @ddg oder @Google, geht es ja.

    Die anderen Anforderungen werden ja von Swift Selection Search scheinbar erfüllt.

  • Eigene Icons für about:xxx in der Urlbar, bzw. im Container

    • Mira_Belle
    • 17. März 2023 um 15:35
    Zitat von DenalB
    Zitat von Mira_Belle

    Ja :!:


    Hätte ich besser erklären sollen.

    Oh, dann schaue ich mir das direkt mal genauer an. Danke! :)

    Und berichte!

    Bei Fragen, auch her mit, habe mich mit diesem Script und der Integration des CSS so lange beschäftigt,

    da hoffe ich doch, dass ich das Teil nun kennen sollte.

    Wobei ich von JavaScript eigentlich so gar keine Ahnung habe. :D

  • Eigene Icons für about:xxx in der Urlbar, bzw. im Container

    • Mira_Belle
    • 16. März 2023 um 15:08
    Zitat von 2002Andreas
    Zitat von Mira_Belle

    Wenn nicht, also wenn keine vorhanden sind, wird auch hier, jenes, welches im Script definiert ist genommen.

    Funktioniert zumindest nicht auf allen Seiten, bei einem Test auf die Schnelle.

    ...

    Und Du hattest das JavaScript auch richtig eingestellt, Zeile 16?

    Denn das firefox_logo_2004.svg hast Du wahrscheinlich nicht.

    Beim Gegencheck funktionierten alle drei Seiten.

  • Eigene Icons für about:xxx in der Urlbar, bzw. im Container

    • Mira_Belle
    • 16. März 2023 um 12:27
    Zitat von DenalB

    Bezieht sich das auf alle Webseiten?

    Ja :!:

    Hätte ich besser erklären sollen.

    Zitat von 2002Andreas

    Nein.

    Es geht nur um die Icons für die about: Seiten.

    Doch, mein Fehler, es werden Favicons externer Seiten in der Adresszeile dargestellt, wenn vorhanden.

    Wenn nicht, also wenn keine vorhanden sind, wird auch hier, jenes, welches im Script definiert ist genommen.

  • Eigene Icons für about:xxx in der Urlbar, bzw. im Container

    • Mira_Belle
    • 16. März 2023 um 06:35

    Tadaa

    Ich präsentiere ... Trommelwirbel ... das Script samt CSS,

    Es werden Favicons in der Adresszeile angezeigt.

    Bei internen Seiten wird erst das "alte" Firefoxlogo, dann der Schriftzug "Firefox" und dann ein Favicon gezeigt.

    Ausnahmen sind die internen Seiten about:privatebrowsing, about:robots & about:sync-log,

    bei diesen werden die "eigenen" Favicons gezeigt.

    Und hier das Machwerk:

    JavaScript
    // FavIconInUrlBar.uc.js
    // Source file https://www.camp-firefox.de/forum/thema/130540/?postID=1214926#post1214926
    // Source file https://www.camp-firefox.de/forum/thema/136090/?postID=1221738#post1221738
    // Final source https://www.camp-firefox.de/forum/thema/136090/?postID=1221830#post1221830
    
    var myPath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'));  // Pfadangabe zum Profilordner
    var myPrefix = "firefox_logo_2004.svg";  // Name (& Dateiendung) des anzuzeigenden Symbols
    var mySuffix = ' ';  // Dateiendung des anzuzeigenden Symbols
    var Symbol = myPath + myPrefix + mySuffix;
    var i_icon = 'chrome://global/skin/icons/info.svg';
    var sheet = 'chrome://global/skin/icons/Portrait.png';
    var brand = 'chrome://branding/content/icon32.png';
    var globe = 'chrome://global/skin/icons/defaultFavicon.svg';
    var all = 'chrome://global/skin/icons/settings.svg';
    
    var icon_for_pages_without_favicon = Symbol; // i_icon, sheet, globe or brand (colorized Fx channel icon)
    
    (function() {
        if (location.href !== 'chrome://browser/content/browser.xhtml') return;
            let fav = document.createXULElement('image');
            fav.setAttribute('id', 'faviconid');
            fav.setAttribute('class', 'faviconclass');
        gBrowser.tabContainer.addEventListener('TabAttrModified', 
        function() {            
            let favicon = gBrowser.selectedTab.image; 
            if (favicon && favicon.indexOf('icon32.png') === -1) {
                // if favicon is present and not 'icon32.png', set it as the source
                fav.src = favicon;        
                var position = document.getElementById('identity-icon');
                position.parentNode.insertBefore(fav, position.previousSibling);
            }
            else {
                // if no favicon is present or it is 'icon32.png', set a custom one
                fav.src = icon_for_pages_without_favicon;
                var position = document.getElementById('identity-icon');
                position.parentNode.insertBefore(fav, position.previousSibling);
            }
        }, false);
        fav.style.height = '16px';
        fav.style.width  = '16px';
        fav.style.marginLeft  = '7px';
        fav.style.marginRight  = '3px';
        fav.style.marginTop  = '2px';
    
        var css =`
        /*------------------------------------------------*/
        /********** Anpassungen für Systemseiten **********/
        /*------------------------------------------------*/
    
        #identity-box[pageproxystate="valid"].localResource #identity-icon {
            list-style-image: unset !important;
        }
        #identity-box[pageproxystate="valid"].localResource #faviconid {
            margin-left: -15px !important;
            margin-bottom: 2px ;
        }
        
        #identity-box[pageproxystate="valid"].localResource::after {
            content: "Firefox"!important;
            margin-left: -2px !important;
            padding-left: -1px !important;
        }
        #identity-box[pageproxystate="valid"].localResource {
            margin-right: 8px !important;
            padding-right: 10px !important;
        }
        #identity-box[pageproxystate="valid"].localResource::after {
            background: url("chrome://global/skin/icons/info.svg") !important;
            background-repeat: no-repeat !important;
            background-position: 48px 2px !important;
            background-size: 16px 16px !important;   
            padding-right: 24px !important;
            -moz-context-properties: fill !important;
            fill: #ffcc00 !important;
        }
        
        /* chromeUI */
        
        #identity-box[pageproxystate="valid"].chromeUI #identity-icon {
            list-style-image: unset !important;
            width: 16px !important;
            height: 16px !important;
            background-image: url("${myPath}/firefox_logo_2004.svg")!important;
            background-repeat: no-repeat !important;
            background-size: 16px 16px !important;
        }
        #identity-box[pageproxystate="valid"].chromeUI #identity-icon-label {
            margin-bottom: 2px !important;
        }
        
        /* #identity-box[pageproxystate="invalid"]  */
        /* Der Code für about:home & about:welcome */
        
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"] #faviconid {
            display: none !important;
        }
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"] #identity-icon {
            list-style-image: unset !important;
            margin-left: 5px !important;
            background: url("${myPath}/firefox_logo_2004.svg")!important;
            background-size: 16px 16px !important;
        }
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"]::after {
            content: "Firefox"!important;
            margin-left: 1px !important;
        }
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"] {
            margin-right: 8px !important;
            padding-right: 10px !important;
        }
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"]::after {
            background: url("chrome://global/skin/icons/defaultFavicon.svg") !important;
            background-repeat: no-repeat !important;
            background-position: 48px 2px !important;
            background-size: 16px 16px !important;   
            padding-right: 24px !important;
            -moz-context-properties: fill !important;
            fill: #ffcc00 !important;    
        }
    
        `;
        var sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
        var uri = makeURI('data:text/css;charset=UTF=8,' + encodeURIComponent(css));
        sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
    
    })();
    Alles anzeigen
  • Eigene Icons für about:xxx in der Urlbar, bzw. im Container

    • Mira_Belle
    • 15. März 2023 um 22:57

    Wie ich schon in meinem letzten Beitrag angemerkt habe, gibt es ein kleines Problem!

    Habe das CSS nun so umgeschrieben, dass bei den internen Seiten die mitgelieferten Icons erhalten bleiben.

    Durch das JavaScript wird bei Seiten ohne eigenes Icon ein eigenes eingesetzt.

    Das wären die internen Seiten:

    about:checkerboard, about:logging, about:logo, about:memory, about:mozilla,

    about:networking, about:serviceworkers, about:third-party, about:unloads,

    about:url-classifier, about:webrtc & about:windows-messages.

    Seiten, die ein eigenes Icon mitbringen, sind:

    about:privatebrowsing, about:robots & about:sync-log,about:about & about:newtab.

    Bei den Seiten about:privatebrowsing, about:robots & about:sync-log

    soll das Icon nicht ersetzt werden sollen :!:

    Jedoch möchte ich, dass bei den Seiten about:about & about:newtab das Icon

    (chrome://branding/content/icon32.png) unbedingt durch das Icon,

    welches im JavaScript angegeben ist, ersetzt wird.

    Kann mir jemand eine Routine in das JavaScript einbauen, die das

    von mir gewünschte umsetzt?

    Prüfen des Symbols und wenn gleich icon32.png ersetzen durch var icon_for_pages_without_favicon?

    Hier noch einmal das betreffende Script:

    JavaScript
    var myPath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'));  // Pfadangabe zum Profilordner
    var myPrefix = "firefox_logo_2004.svg";  // Name (& Dateiendung) des anzuzeigenden Symbols
    var mySuffix = ' ';  // Dateiendung des anzuzeigenden Symbols
    var Src = myPath + myPrefix + mySuffix;
    var i_icon = 'chrome://global/skin/icons/info.svg';
    var sheet = 'chrome://global/skin/icons/Portrait.png';
    var brand = 'chrome://branding/content/icon32.png';
    var globe = 'chrome://global/skin/icons/defaultFavicon.svg';
    var all = 'chrome://global/skin/icons/settings.svg';
    
    var icon_for_pages_without_favicon = Src; // i_icon, sheet, globe or brand (colorized Fx channel icon)
    
    (function() {
        if (location.href !== 'chrome://browser/content/browser.xhtml') return;
            let fav = document.createXULElement('image');
            fav.setAttribute('id', 'faviconid');
            fav.setAttribute('class', 'faviconclass');
        gBrowser.tabContainer.addEventListener('TabAttrModified', function() {            
            let favicon = gBrowser.selectedTab.image;  
            if (favicon) {    
                fav.src = favicon;        
                var position = document.getElementById('identity-icon');
                position.parentNode.insertBefore(fav, position.previousSibling);
            }
           else {
               fav.src = icon_for_pages_without_favicon;
        var position = document.getElementById('identity-icon');
        position.parentNode.insertBefore(fav, position.previousSibling);
           }
        }, false);
        fav.style.height = '16px';
        fav.style.width  = '16px';
        fav.style.marginLeft  = '7px';
        fav.style.marginRight  = '3px';
        fav.style.marginTop  = '2px';
    })();
    Alles anzeigen

    Und hier das von mir geänderte CSS:

    CSS
        /* localResource (about:about) */
    
    #identity-box[pageproxystate="valid"].localResource #identity-icon {
        list-style-image: unset !important;
    }
    #identity-box[pageproxystate="valid"].localResource #faviconid {
      margin-left: -15px !important;
      margin-bottom: 2px ;
    }
    #identity-box[pageproxystate="valid"].localResource::after {
      content: "Firefox"!important;
      margin-left: -2px !important;
      padding-left: -1px !important;
    }
    #identity-box[pageproxystate="valid"].localResource {
      margin-right: 8px !important;
      padding-right: 10px !important;
    }
    #identity-box[pageproxystate="valid"].localResource::after {
      background: url("chrome://global/skin/icons/info.svg") !important;
      background-repeat: no-repeat !important;
      background-position: 48px 2px !important;
      background-size: 16px 16px !important;   
      padding-right: 24px !important;
      -moz-context-properties: fill !important;
      fill: #ffcc00 !important;
    }
    
        /* chromeUI */
    
        #identity-box[pageproxystate="valid"].chromeUI #identity-icon {
            list-style-image: unset !important;
            width: 16px !important;
            height: 16px !important;
            background-image: url("../icons/firefox_logo_2004.svg")!important;
            background-repeat: no-repeat !important;
            background-size: 16px 16px !important;
        }
    
        #identity-box[pageproxystate="valid"].chromeUI #identity-icon-label {
            margin-bottom: 2px !important;
        }
    
        /* #identity-box[pageproxystate="invalid"]  */
        /* Der Code für about:home & about:welcome */
    
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"] #faviconid {
            display: none !important;
        }
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"] #identity-icon {
            list-style-image: unset !important;
            margin-left: 5px !important;
            background: url("../icons/firefox_logo_2004.svg")!important;
            background-size: 16px 16px !important;
        }
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"]::after {
            content: "Firefox"!important;
            margin-left: 1px !important;
        }
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"] {
            margin-right: 8px !important;
            padding-right: 10px !important;
        }
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"]::after {
            background: url("chrome://global/skin/icons/defaultFavicon.svg") !important;
            background-repeat: no-repeat !important;
            background-position: 48px 2px !important;
            background-size: 16px 16px !important;   
            padding-right: 24px !important;
            -moz-context-properties: fill !important;
            fill: #ffcc00 !important;    
        }
    Alles anzeigen
  • Downloadordner bei EasyYoutubeVideoDownloader

    • Mira_Belle
    • 15. März 2023 um 16:31
    Zitat von Simbaro
    ...

    Es müsste also wohl eine eigene Einstellung für EasyYoutubeVideoDownloader geben?

    SG

    Simbaro

    Eventuell => https://www.computerbild.de/artikel/cb-Tip…l-31486363.html

    Übernehme aber keine Garantie!

  • benutzerdefiniertes Wörterbuch zur Rechtschreibkontrolle hinzufügen

    • Mira_Belle
    • 15. März 2023 um 16:26
    Zitat von Astrophytum

    Hallo Mira,

    danke für das Script! :)

    In der Tat wird wohl das verwenden mehrerer Profile das Problem sein.

    Ich bleibe dran.

    LG,

    Astrophytum

    Alles anzeigen

    Nichts zu Danken, ist ja nicht von mir, hatte halt nur die Idee ChatGPT mit einer Frage zu füttern.

    Aber ich hätte da noch Anmerkungen, andere Gedanken und Ideen!

    Bei einem solchen Script sollte es auch eine Sicherung der alten, originalen Datei geben,

    Eventuell muss es ja rückgängig gemacht werden.

    Menschliche Komponente, Nutzer die mehrere Profile nutzen sind, so glaube ich,

    keine Daus, also Nutzer, die wenige bis gar keine PC-Kentnisse besitzen,

    diesen kann man dann wohl zumuten, das richtige Benutzerprofil auszuwählen.

    Apropos Benutzerprofil, da muss natürlich auch noch eine Prüfroutine eingebaut werden

    und dann, wenn es tatsächlich mehrere Profile gibt, ein Auswahlfenster generiert werden.

    Wenn ich jetzt nichts vergessen habe, sollte es das gewesen sein.

  • benutzerdefiniertes Wörterbuch zur Rechtschreibkontrolle hinzufügen

    • Mira_Belle
    • 15. März 2023 um 10:47
    Zitat von Astrophytum
    Zitat von Mira_Belle

    Wenn da nichts verbogen wurde => %appdata%\Mozilla\Firefox\Profiles

    Hallo,

    der Pfad ist nicht vollständig, das Wichtigste fehlt, nämlich das aktuelle Profil. Und das ist eben bei jedem User anders benannt. Deswegen ist es so schwer, das per Batch anzusprechen. Und eine Umgebungsvariable gibt es auch nicht.

    Viele in FF gefällt mir, endliches überhaupt nicht.

    MfG

    Ja, ist mir schon klar, deshalb ja auch der Vorschlag per PowerShell Script.

    Denn in JavaScript ist es ja möglich den Pfad zum Profil "zu berechnen", das sollte

    in PS Script dann doch auch möglich sein.

    JavaScript => PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir))

    ------------------------------------------------------ von ChatGPT generiert -----------------------------------------------------------------

    In PowerShell könnten Sie den Profilordner von Firefox mit dem folgenden Skript ermitteln:

    Code
    # Pfade zu den relevanten Firefox-Dateien
    $firefoxPath = "$env:ProgramFiles\Mozilla Firefox\firefox.exe"
    $firefoxProfilePath = "$env:APPDATA\Mozilla\Firefox\Profiles"
    
    # Suchen nach dem Profilordner
    $profiles = Get-ChildItem $firefoxProfilePath -Directory
    foreach ($profile in $profiles) {
        $profilePath = Join-Path $profile.FullName "prefs.js"
        if (Test-Path $profilePath) {
            $firefoxProfileDir = $profile.FullName
            break
        }
    }
    
    # Konvertieren in eine File-URI
    if ($firefoxProfileDir) {
        $fileUri = (New-Object System.Uri($firefoxProfileDir)).AbsoluteUri
    }
    Alles anzeigen

    Dieses Skript sucht nach dem Installationspfad von Firefox und dem Profilordner im Benutzerverzeichnis.

    Es geht davon aus, dass der Profilordner von Firefox eine Datei namens prefs.js enthält, die zur Identifizierung

    des Profilordners verwendet werden kann.

    Wenn der Profilordner gefunden wird, wird er in eine File-URI umgewandelt und in der Variable $fileUri gespeichert.

    Wenn Sie sichergehen möchten, dass der gefundenen Profilordner tatsächlich von Firefox stammt,

    können Sie in der Schleife auch nach einer bestimmten Datei oder einem bestimmten Verzeichnis suchen,

    die oder das nur in Firefox-Profilordnern vorhanden ist.

    ------------------------------------------------------ von ChatGPT generiert ----------------------------------------------------------------

    Ob es so funktionieren kann, weiß ich nicht!

    Ein Pferdefuß könnte sein, wenn jemand mehrere Profile hat.

    Aber auch das sollte möglich sein, z.B. eine Abfrage wohin die persdict.dat dann kopiert werden soll.

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