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

Beiträge von Dharkness

  • Button um weiteres Profil zu öffnen

    • Dharkness
    • 14. August 2023 um 23:11
    Zitat von Horstmann

    Nur aus Neugierde, gibt es auch eine Fehlermeldung zu document.getElementById...etc, wenn der komplette CSS Teil raus ist?

    Mit dem ↓ Script zumindest gibt es keine Fehlermeldung mehr.

    JavaScript
    // JavaScript Document
    // QuickProfilesChangesButton.uc.js
    // Source code https://www.camp-firefox.de/forum/thema/136664/?postID=1233148#post1233148
    // Mit wichtiger Änderung von Horstmann!
    // Version 1.10b from August 14, 2023
    (function() {
       if (location.href !== 'chrome://browser/content/browser.xhtml') return;
       try {
          CustomizableUI.createWidget({
             id: 'profileschange-button',
             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 iconDirectory = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons')); // Profilpfad zum Ordner des Symbols
                let buttonIcon = "monitor.png";  // Name & Dateiendung des anzuzeigenden Symbols. Hier "XXX.xxx" das eigene Symbol inkl. Dateiendung eintragen
                toolbaritem.onclick = event => onClick(event);
                var props = {
                    id: 'profileschange-button',
                    class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                    removable: 'true',
                    label: 'Profil zusätzlich starten',
                    accesskey: '', // Wer möchte kann hier z.B. 'C' eintragen, dann kann per "Alt + C" das Skript ausgeführt werden
                    tooltiptext: 'Profile Changer',
                    style: 'list-style-image: url("' + iconDirectory + '/' + buttonIcon + '");',
                 };
                 for (var p in props)
                    toolbaritem.setAttribute(p, props[p]);
                 return toolbaritem;
              }
           });
        } catch(e) { };
    
    //    var css =`
    //        #profileschange-button {
    //            list-style-image: url("${ProfilePath}/${ButtonIcon}");
    //        }
    //    `;
    //    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);
    
       function onClick(event) {
          if (event.button != 0){
             return;
          }
          let file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
          // let arguments = ["-no-remote", "-P", "Standard-Benutzer", "-foreground"]; // Profil wird ausgewählt Hier "XXX" den gewünschten Profilnamen eintragen
          let arguments = ["-no-remote", "-P"]; // Wer lieber den Profilmanager aufrufen möchte,nutzt diese Zeile!
          file.initWithPath("C:\\Program Files\\RV\\Mozilla Firefox\\firefox.exe"); // Pfad zur Firefox-Installation
    //      file.initWithPath("/Applications/Firefox.app/Contents/MacOS/firefox"); // Pfad zur Firefox-Installation, Dateipfad für Mac User
          let process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
          process.init(file);
          process.run(false, arguments, arguments.length); // Profil wird bestätigt
       }
    })();
    Alles anzeigen
  • Button um weiteres Profil zu öffnen

    • Dharkness
    • 14. August 2023 um 21:50
    Zitat von Mira_Belle

    Wann das Skript Version 1.10b fehlerfrei funktioniert, wird dann auch eine Fehlermeldung ausgegeben?

    Habe ich das richtig verstanden?

    Mittlerweile wird keine Fehlermeldung mehr angezeigt.

    Zitat von Mira_Belle

    Also gehe ich jetzt ganz stark mal davon aus, dass das nicht der Grund für das Versagen des Skripts bei geldhuegel ist.

    Der Fehler muss woanders sein.

    Wie gesagt, bei mir hatte Version 1.10 auch nicht funktioniert, aber die korrigierte Version 1.10b funktioniert nun und die Grafik wird angezeigt.

  • Button um weiteres Profil zu öffnen

    • Dharkness
    • 14. August 2023 um 21:11

    Hallo Mira_Belle,

    die Entwickler-Werkzeuge zeigen das ↓ als Fehler an.

    Code
    Grafik konnte nicht geladen werden.
    Element {
        list-style-image: url("file:///H:/Profile/Firefox/Fx57-H-Default/chrome/iconsmonitor.png");
    }

    Beachte dabei beim Pfad auf den fehlenden Slash zwischen icons und monitor.png.


    Hallo Mira_Belle,

    ich denke ich habe den Fehler gefunden, das * muss wohl so ** aussehen.

    *

    JavaScript
    style: 'list-style-image: url("' + iconDirectory + buttonIcon + '");',

    **

    JavaScript
    style: 'list-style-image: url("' + iconDirectory + '/' + buttonIcon + '");',
  • Button um weiteres Profil zu öffnen

    • Dharkness
    • 14. August 2023 um 20:41
    Zitat von Mira_Belle

    Gibt es da auch die Fehlermeldungen?

    Ja, aber die Version funktioniert trotz der gleichen Fehlermeldung, nur wird das list-style-image nicht angezeigt.

    Hier ↓ noch das angepasste Script.

    JavaScript
    // JavaScript Document
    // QuickProfilesChangesButton.uc.js
    // Source code https://www.camp-firefox.de/forum/thema/136664/?postID=1233148#post1233148
    // Mit wichtiger Änderung von Horstmann!
    // Version 1.10b from August 14, 2023
    (function() {
       if (location.href !== 'chrome://browser/content/browser.xhtml') return;
       try {
          CustomizableUI.createWidget({
             id: 'profileschange-button',
             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 iconDirectory = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons')); // Profilpfad zum Ordner des Symbols
                let buttonIcon = "monitor.png";  // Name & Dateiendung des anzuzeigenden Symbols. Hier "XXX.xxx" das eigene Symbol inkl. Dateiendung eintragen
                toolbaritem.onclick = event => onClick(event);
                var props = {
                    id: 'profileschange-button',
                    class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                    removable: 'true',
                    label: 'Profil zusätzlich starten',
                    accesskey: '', // Wer möchte kann hier z.B. 'C' eintragen, dann kann per "Alt + C" das Skript ausgeführt werden
                    tooltiptext: 'Profile Changer',
                    style: 'list-style-image: url("' + iconDirectory + buttonIcon + '");',
                 };
                 for (var p in props)
                    toolbaritem.setAttribute(p, props[p]);
                 return toolbaritem;
              }
           });
        } catch(e) { };
    
        var css =`
            #profileschange-button {
                list-style-image: url("${ProfilePath}/${ButtonIcon}");
            }
        `;
        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);
       function onClick(event) {
          if (event.button != 0){
             return;
          }
          let file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
          // let arguments = ["-no-remote", "-P", "Standard-Benutzer", "-foreground"]; // Profil wird ausgewählt Hier "XXX" den gewünschten Profilnamen eintragen
          let arguments = ["-no-remote", "-P"]; // Wer lieber den Profilmanager aufrufen möchte,nutzt diese Zeile!
          file.initWithPath("C:\\Program Files\\RV\\Mozilla Firefox\\firefox.exe"); // Pfad zur Firefox-Installation
    //      file.initWithPath("/Applications/Firefox.app/Contents/MacOS/firefox"); // Pfad zur Firefox-Installation, Dateipfad für Mac User
          let process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
          process.init(file);
          process.run(false, arguments, arguments.length); // Profil wird bestätigt
       }
    })();
    Alles anzeigen
  • Button um weiteres Profil zu öffnen

    • Dharkness
    • 14. August 2023 um 16:53
    Zitat von Mira_Belle

    Was mich stutzig macht, ist die Fehlermeldung

    Etwas ähnliches schlägt mittlerweile auch hier auf, nur halt andere Zeilenangaben, Zeile 39 und 53, hier mal mein Script der V1.10..

    JavaScript
    // JavaScript Document
    // QuickProfilesChangesButton.uc.js
    // Source code https://www.camp-firefox.de/forum/thema/136664/?postID=1233148#post1233148
    // Mit wichtiger Änderung von Horstmann!
    // Version 1.10 from August 12, 2023
    (function() {
       if (location.href !== 'chrome://browser/content/browser.xhtml') return;
       try {
          CustomizableUI.createWidget({
             id: 'profileschange-button',
             type: 'custom',
             defaultArea: CustomizableUI.AREA_NAVBAR,
             onBuild: function(aDocument) {
                let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                var props = {
                   id: 'profileschange-button',
                   class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                   removable: 'true',
                   label: 'Profil zusätzlich starten',
                   accesskey: '', // Wer möchte kann hier z.B. 'C' eintragen, dann kann per "Alt + C" das Skript ausgeführt werden
                   tooltiptext: 'Profile Changer',
                };
                for (var p in props)
                   toolbaritem.setAttribute(p, props[p]);
                return toolbaritem;
             }
          });
       } catch(e) { };
    
       let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons')); // Pfad zum Profilordner und gleich in den entsprechenden Unterordner
       let ButtonIcon = "processor.png"; // Name & Dateiendung des anzuzeigenden Symbols!
       let sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService);
       let uri = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent(`
          #profileschange-button {
              list-style-image: url("${ProfilePath}/${ButtonIcon}");
          }
          `), null, null);
       sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
       document.getElementById('profileschange-button').addEventListener( "click", onClick );
       function onClick(event) {
          if (event.button != 0){
             return;
          }
          let file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
          // let arguments = ["-no-remote", "-P", "Standard-Benutzer", "-foreground"]; // Profil wird ausgewählt Hier "XXX" den gewünschten Profilnamen eintragen
          let arguments = ["-no-remote", "-P"]; // Wer lieber den Profilmanager aufrufen möchte,nutzt diese Zeile!
          file.initWithPath("C:\\Program Files\\RV\\Mozilla Firefox\\firefox.exe"); // Pfad zur Firefox-Installation
          // file.initWithPath("/Applications/Firefox.app/Contents/MacOS/firefox"); // Pfad zur Firefox-Installation, Dateipfad für Mac User
          let process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
          process.init(file);
          process.run(false, arguments, arguments.length); // Profil wird bestätigt
       }
    })();
    Alles anzeigen
  • Button um weiteres Profil zu öffnen

    • Dharkness
    • 13. August 2023 um 11:03
    Zitat von Mira_Belle

    Kannst Du mal in der Konsole nach Fehlermeldungen suchen?

    Hm, sehr merkwürdig, hier schlagen in der Konsole keine Fehlermeldungen bezüglich des Scripts in Version 1.10 auf.

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

    • Dharkness
    • 10. August 2023 um 15:16
    Zitat von FuchsFan

    Nun habe ich krampfhaft versucht den Fehler zu finden, warum einige Popup-Menüs kurz nach dem öffnen wieder schließen, wenn die Maus darüber gehalten wird, so z.B. Überhangmenü, Hamburger Menü, u.a. Wird das Script entfernt, dann passiert das nicht.

    Woran könnte das liegen?

    Das Script habe ich auch, aber ich hatte auch das Hamburger-Restart-Script und bei mir hat das deaktivieren des Hamburger-Restart-Script das Problem beseitigt, das Tooltip-CSS-Script läuft hier ohne Probleme.

    Ich werde es aber nachher mal probieren, ob auch ein deaktivieren Tooltip-CSS-Script bei aktiviertem Hamburger-Restart-Script hilft.

  • Restart-Script ohne Funktion

    • Dharkness
    • 8. August 2023 um 18:58
    Zitat von 2002Andreas

    Teste die Version mal, da sind Änderungen wohl drin:

    Ich habe mich für die 2te Version ohne das Löschen des Caches entschieden, den ein solches habe ich ja schon in der 'Vertical Add-on Bar' script for Firefox 60+ by Aris.

  • Restart-Script ohne Funktion

    • Dharkness
    • 8. August 2023 um 15:32
    Zitat von 2002Andreas

    Ich habe hier keinen Mittelklick. ;)

    Darum machen Links- und Rechtsklick hier das gleiche.

    Ok, aber was macht das Script bei welchem Klick, wenn man alle 3 Klicks ( Links-, Mittel- und Rechtsklick) verwenden kann?

  • Restart-Script ohne Funktion

    • Dharkness
    • 8. August 2023 um 15:15
    Zitat von 2002Andreas

    aber mein Skript funktioniert einwandfrei

    Funktioniert in der Tat ohne Probleme, aber das ↓ verwirrt mich, ist das so korrekt?

    tooltiptext: 'Neustart (mit Rechts 2- und Linksklick 0 wird der userChrome.js-Cache geleert)'

    Das andere Script werde ich auch gleich mal testen.

  • Restart-Script ohne Funktion

    • Dharkness
    • 8. August 2023 um 14:49

    Hallo zusammen,

    gibt es von dieser ↓ Variante des Restart-Scripts eine neue Version? Ich frage deshalb, weil es im 118'er Nightly nicht funktioniert.

    JavaScript
    // Restart button script for Firefox 60+ by Aris
    //
    // left-click on restart button: normal restart
    // middle-click on restart button: restart + clear caches
    // right-click on restart button: no special function
    //
    // based on 'Quit' button code by 2002Andreas
    // restart code from Classic Theme Restorer add-on
    // invalidate caches from Session Saver add-on
    
    (function() {
    
    try {
      Components.utils.import("resource:///modules/CustomizableUI.jsm");
      var {Services} = Components.utils.import("resource://gre/modules/Services.jsm", {});
      var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService);
      var appversion = parseInt(Services.appinfo.version);
    
      var button_label = "Restart";
    
        try {
          switch (document.getElementById("nav-bar").getAttribute("aria-label")) {
            case "Navigations-Symbolleiste": button_label = "Neustarten"; break;
            case "Панель навигации": button_label = "Перезапустить"; break;
          }
        } catch(e) {}
    
      CustomizableUI.createWidget({
        id: "uc-restart", // button id
        defaultArea: CustomizableUI.AREA_NAVBAR,
        removable: true,
        label: button_label, // button title
        tooltiptext: button_label, // tooltip title
        onClick: function(event) {
    
          var cancelQuit   = Components.classes["@mozilla.org/supports-PRBool;1"].createInstance(Components.interfaces.nsISupportsPRBool);
          var observerSvc  = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
    
          if(event.button=='1') { // middle-click - clear caches
            Components.classes["@mozilla.org/xre/app-info;1"].getService(Components.interfaces.nsIXULRuntime).invalidateCachesOnRestart();
          }
    
          if(event.button=='0' || event.button=='1') { // left/middle-click - restart
            observerSvc.notifyObservers(cancelQuit, "quit-application-requested", "restart");
    
            if(cancelQuit.data) return false;
    
            Services.startup.quit(Services.startup.eRestart | Services.startup.eAttemptQuit);
          }
        },
        onCreated: function(button) {
          return button;
        }
    
      });
    
      var icon = "chrome://global/skin/icons/reload.svg";
    
      if(appversion < 92) icon = "chrome://browser/skin/reload.svg";
    
      // style button icon
      var uri = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent('\
        \
          #uc-restart .toolbarbutton-icon {\
            list-style-image: url("'+icon+'"); /* icon / path to icon */ \
            transform: scaleX(-1); /* icon mirroring */\
            fill: white; /* icon color name/code */\
          }\
        \
      '), null, null);
    
      sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
    
    } catch (e) {
        Components.utils.reportError(e);
    };
    
    })();
    Alles anzeigen
  • BackupProfile.uc.js - div. Fragen dazu

    • Dharkness
    • 6. August 2023 um 00:27
    Zitat von BrokenHeart

    Also auf "Benachrichtigungsassistent" und nicht auf "nur Alarme" oder "nur mit Priorität" eingestellt?

    Das lag der Hund bei mir begraben, stand hier auf Alarme.

  • BackupProfile.uc.js - div. Fragen dazu

    • Dharkness
    • 5. August 2023 um 21:08
    Zitat von 2002Andreas

    Das muss hier aktiviert werden:

    Ist so eingestellt.

  • BackupProfile.uc.js - div. Fragen dazu

    • Dharkness
    • 5. August 2023 um 20:03
    Zitat von 2002Andreas

    Wenn dich jemand in einem Beitrag zitiert, du aber gerade auf einer anderen Webseite bist, dann kommt dieses Popup auch.

    Obwohl aktiviert irgendwie nicht wirklich.

  • BackupProfile.uc.js - div. Fragen dazu

    • Dharkness
    • 5. August 2023 um 19:46
    Zitat von grisu2099

    Beitrag 288 hast du gelesen und bei dir kontrolliert?

    Natürlich.

  • BackupProfile.uc.js - div. Fragen dazu

    • Dharkness
    • 5. August 2023 um 19:38
    Zitat von BrokenHeart

    Nur noch mal zur Sicherheit ein paar Nachfragen:


    - Welche Windows(?)-Version habt ihr?

    - Benutzt ihr portable Versionen?

    - Das Backup wurde auch ohne Benachrichtigung korrekt durchgeführt und Firefox war wieder bedienbar?

    - Tritt der Fehler nur auf, wenn die path-Variable in Zeile 20 leer ist also path = ""?

    - Ohne die Anpassung von mir wird jedesmal die Benachrichtigung angezeigt?

    Alles anzeigen

    Windows 10 Pro 64Bit

    Nein.

    Ja.

    Das Alert wird nie gezeigt.

    Nein, ist mir aber vorher auch nicht wirklich bewusst gewesen, das es ein solches Alert gibt.


    Zitat von 2002Andreas

    Und das ist hier aktiviert:

    Benachrichtigungen sind hier nicht deaktiviert.


    Zitat von BrokenHeart

    Meine Einstellungen für die Benachrichtigung sehen hier genauso aus. Wäre vielleicht auch noch eine Baustelle für grisu2099 und Dharkness, die sie überprüfen könnten.


    Edit: hat sich laut #289 wohl erledigt :)

    Nope, hier sind die Benachrichtigungen nicht deaktiviert.

  • Größere Abstände zwischen den Menüsymbolen und dem Menütext

    • Dharkness
    • 5. August 2023 um 17:21
    Zitat von Mira_Belle

    Seit ich "meine" CSS geschrieben habe, und das ist schon eine Weile her,

    funktioniert sie, und zwar genauso wie gewünscht und

    ich habe da auch bisher nicht weiter daran herumschrauben müssen.

    Ich musste im ungünstigen Fall mal ein Eintrag einer Erweiterung anpassen, aber ansonsten geht es mir wie Dir, ich muss nichts anpassen.

  • BackupProfile.uc.js - div. Fragen dazu

    • Dharkness
    • 5. August 2023 um 16:54
    Zitat von grisu2099

    Bei mir im Nightly auch nicht - bei der Release erscheint es...

    Bei mir bei beiden nicht.

  • BackupProfile.uc.js - div. Fragen dazu

    • Dharkness
    • 5. August 2023 um 16:06
    Zitat von BrokenHeart

    Hier der geänderte Code, wenn das jemand testen und nutzen möchte

    Bei mir kommt das Alert nicht, wo könnte es haken?

  • BackupProfile.uc.js - div. Fragen dazu

    • Dharkness
    • 5. August 2023 um 16:01
    Zitat von 2002Andreas

    Ist ein Pfad eingetragen, dann wird die Sicherung automatisch in dem Ordner gespeichert.

    Ist kein Pfad eingetragen, dann öffnet sich das Popup zur Nachfrage wo gespeichert werden soll.

    Beitrag 270, untere Screenshot.

    Ich glaube, das Du mich missverstanden hast, das Alert kommt so oder so nicht, wenn ich keinen Pfad eintrage, kommt das Auswahlfenster, so wie es sein sollte.

Unterstütze uns!

Jährlich (2025)

101,9 %

101,9% (662,48 von 650 EUR)

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