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

Beiträge von bege

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

    • bege
    • 7. Oktober 2020 um 14:41
    Zitat von Sören Hentzschel

    Geht es dir eigentlich um etwas anderes als Chronik, Lesezeichen und offene Tabs? Falls dir das reicht, benötigst du gar kein Script. Mozilla hat entsprechende Filter-Buttons neben den Suchmaschinen-Icons implementiert. In der Nightly-Version kann das bereits getestet werden:

    Ich hab gerade nicht im Kopf, ob das in Firefox 81 oder Firefox 82 Beta bereits aktiviert werden kann, das kann ich aber später noch prüfen.

    Sieht interessant aus. Ich brauche oft noch die Schlagworte, aber das eine Zeichen kann ich mir vielleicht merken ;)

    Ich habe sehr viele Suchmaschinen gespeichert, sodass ich da erst 'ne Weile nach den Buttons suchen müsste, aber das lässt sich neu organisieren, weil ich für die Organisation der vielen Suchmaschinen das Addon ContextSearch verwende. In der URL-Leiste reichen dann die wichtigsten.

    Trotzdem wäre es mir natürlich eine Befriedigung, wenn ich mit eurer Hilfe das Skript wieder zum Laufen kriegen würde.

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

    • bege
    • 7. Oktober 2020 um 14:14
    Zitat von Sören Hentzschel

    setSelectionRange() ist eine Methode von HTMLInputElement, wie einem das MDN verrät [1].

    Dein urlbar-Element ist eine hbox und kein HTMLInputElement. Wenn schon, müsstest du das auf deinem urlbarInput-Element ausführen.

    Ich habe das Script nicht getestet, das dürfte aber nicht der einzige Fehler sein, da es ganz sicher auch kein value-Attribut bei einer hbox (Zeile 39) gibt.

    https://developer.mozilla.org/en-US/docs/Web…tSelectionRange

    Hallo Sören, Dankeschön! Das waren schon zwei wesentliche Tipps. Ich habe das Skript ja nicht selbst erstellt - kann ich gar nicht - sondern habe nur versucht, so weit ich konnte es wieder zum Laufen zu bringen.

    Mit den geänderten Zeilen 39 und 41 wird das per Untermenü gewählte Zeichen jetzt in der URL-Leiste am Ende des vorhandenen Eintrags wie gewünscht angezeigt - nur filtert das noch nicht die Vorschläge. Wenn ich das Zeichen per Hand einfüge, wird gefiltert, wenn ich es per Skript einfüge, noch nicht. Ich vermute da fehlt noch was, damit es im FF als Eingabe ankommt. Wenn ich selbst die Eingabetaste drücke, verschwindet das Zeichen wieder.

    Wenn ich mich recht erinnere, funktioniert dieser Teil des Skripts noch länger nicht, als dass das ganze Untermenü nicht mehr angezeigt wird.

    Hast du noch eine Idee?

    Oder aborix , du hast vorhin schon mal reingeschaut?

    JavaScript: LocationbarCharacters.uc.js
    /* LocationbarCharacters.uc.js */
    
    function initLocationBarCharacters() {
        var urlbar = window.document.getElementById("urlbar"),
            textBox = window.document.getElementById("urlbar-input-container"),
            cxmenu = textBox.getElementsByClassName("textbox-contextmenu"),
              cxmenu = cxmenu.item(0)
            separator = document.createXULElement("menuseparator"),
            menu = document.createXULElement("menu"),
            popup = document.createXULElement("menupopup"),
            labelArray = [
            "* Lesezeichen",
            "+ Schlagworte",
            "$ Web-Adressen (URLs)",
            "# Seitentitel",
            "% Aktuell geöffneten Tabs",
            "^ Chronik",
            "? Eingegebene Seiten"
            ];
          var i;
    
            insertCharacters = function(sym) {
                var urlbar = window.document.getElementById("urlbar"),
                      urlbarInput = window.document.getElementById("urlbar-input"),
                    urlbarText = urlbarInput.value,
                    urlbarFocus = window.document.getElementById("Browser:OpenLocation");
                      // urlbarFocus = window.document.getElementById("focusURLBar");
                var pos;
    
                urlbarFocus.doCommand();
    
                if (urlbarText.length === 0) {
                    urlbarText = sym;
                } else if (urlbarText.slice(-1) === " ") {
                    urlbarText = urlbarText + sym;
                } else {
                    urlbarText = urlbarText + " " + sym;
                }
                urlbarInput.value = urlbarText;
                pos = urlbarText.length;
                 urlbarInput.setSelectionRange(pos, pos);
    
            },
            makeMenuItem = function(label) {
                var sym = label.slice(0, 1),
                    node = document.createXULElement("menuitem");
                node.setAttribute("label", label);
                node.addEventListener("command", function() { insertCharacters(sym); }, false);
                popup.appendChild(node);
            };
    
        menu.setAttribute("label", "Einfügen (* + $ # % ^ ? )" );
        menu.appendChild(popup);
        for (i = 0; i < labelArray.length; i += 1) {
            makeMenuItem(labelArray[i]);
        }
        cxmenu.appendChild(separator);
        cxmenu.appendChild(menu);
    }
    
    initLocationBarCharacters();
    Alles anzeigen
  • userChrome.js Scripte für den Fuchs (Diskussion)

    • bege
    • 7. Oktober 2020 um 10:04

    Ich kann mir die meisten Zeichen nicht merken, die man braucht, um die Vorschläge in der URL-Leiste zu filtern. Deshalb habe ich versucht, das Skript LocationbarCharacters.uc.js wieder zum Laufen zu kriegen, das schon lange nicht mehr funktioniert.

    Ich habe es zwar soweit hingekriegt, dass das Untermenü im Kontextmenü der URL-Leiste wieder angezeigt wird, aber das Einfügen der Zeichen beim Klicken auf einen Eintrag im Untermenü funktioniert nicht.

    JavaScript: LocationbarCharacters.us.js
    /* LocationbarCharacters.uc.js */
    
    function initLocationBarCharacters() {
        // var urlbar = window.document.getElementById("urlbar"),
            textBox = window.document.getElementById("urlbar-input-container"),
            cxmenu = textBox.getElementsByClassName("textbox-contextmenu"),
              cxmenu = cxmenu.item(0)
            separator = document.createXULElement("menuseparator"),
            menu = document.createXULElement("menu"),
            popup = document.createXULElement("menupopup"),
            labelArray = [
            "* Lesezeichen",
            "+ Schlagworte",
            "$ Web-Adressen (URLs)",
            "# Seitentitel",
            "% Aktuell geöffneten Tabs",
            "^ Chronik",
            "? Eingegebene Seiten"
            ];
          var i;
            
            insertCharacters = function(sym) {
                var urlbar = window.document.getElementById("urlbar"),
                      urlbarInput = window.document.getElementById("urlbar-input"),
                    urlbarText = urlbarInput.value,
                    urlbarFocus = window.document.getElementById("Browser:OpenLocation");
                      // urlbarFocus = window.document.getElementById("focusURLBar");
                var pos;
    
                urlbarFocus.doCommand();
    
                if (urlbarText.length === 0) {
                    urlbarText = sym + " ";
                } else if (urlbarText.slice(-1) === " ") {
                    urlbarText = urlbarText + sym + " ";
                } else {
                    urlbarText = urlbarText + " " + sym + " ";
                }
                urlbar.value = urlbarText;
                pos = urlbarText.length;
                 alert (urlbarText);
                 alert (urlbarText.length);
                 urlbar.setSelectionRange(pos, pos);
    
            },
            makeMenuItem = function(label) {
                var sym = label.slice(0, 1),
                    node = document.createXULElement("menuitem");
                node.setAttribute("label", label);
                node.addEventListener("command", function() { insertCharacters(sym); }, false);
                popup.appendChild(node);
            };
    
        menu.setAttribute("label", "Einfügen (* + $ # % ^ ? )" );
        menu.appendChild(popup);
        for (i = 0; i < labelArray.length; i += 1) {
            makeMenuItem(labelArray[i]);
        }
        cxmenu.appendChild(separator);
        cxmenu.appendChild(menu);
    }
    
    initLocationBarCharacters();
    Alles anzeigen

    In Zeile 41 und 42 habe ich alert-Kommandos eingefügt, um zu prüfen, ob die Werte stimmen, und die sind OK, werden aber nicht in die URL-Leiste eingefügt, die bleibt unverändert.

    In der Browser-Konsole bekomme ich die Fehlermeldung "urlbar.setSelectionRange is not a function" (s. Zeile 43). Ich habe es auch mit der Funktion setRangeText versucht, gleiche Fehlermeldung. Beide Funktionen sind aber bei Mozilla beschrieben.

    Hat jemand eine Idee, was da falsch läuft/noch fehlt?

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

    • bege
    • 3. Juli 2020 um 20:42
    Zitat von 2002Andreas
    Zitat von bege

    geht dieses Skript bei mir nicht mehr.

    Hatten wir doch vorgestern erst hier;)

    RE: Script Speichern in für Fx 78 wieder anpassen

    Oh, danke, ich habe nur in diesem Thema gesucht :rolleyes:

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

    • bege
    • 3. Juli 2020 um 20:31

    saveto.uc.js geht nicht mehr

    Hallo,

    seit kurzem (Fx78?) geht dieses Skript bei mir nicht mehr. Wenn ich auf den "Speichern unter"-Button klicke, passiert nichts, in der Fehlerkonsole erscheint dieser Fehler:

    Uncaught TypeError: dialog.mLauncher.saveToDisk is not a function

    saveTo file:///F:/Users/bege/AppData/Roaming/Mozilla/Firefox/Profiles/487kit50.Quantum/chrome/JS/saveto.uc.js:76

    saveto.uc.js:76:34

    JavaScript: saveto.uc.js
    // ==UserScript==
    // @include       chrome://mozapps/content/downloads/unknownContentType.xhtml
    // @charset       UTF-8
    // @version       Fx73+
    // ==/UserScript==
    (function() {
    
        const Cu = Components.utils;
        if (!window.FileUtils) Cu.import('resource://gre/modules/FileUtils.jsm');
        if (!window.Services) Cu.import('resource://gre/modules/Services.jsm');
    
        setTimeout(function() {
            saveTo()
        }, 200);
    
        // style sheet
        Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService).loadAndRegisterSheet(
          Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent('\
              \
              .dialog-button menupopup {\
                background: #F0F0F0 !important; \
                border: 1px solid #A0A0A0 !important; \
                padding: 0 5px !important; \
              } \
              .dialog-button menupopup menuitem:hover {\
                background-color: -moz-menuhover !important; \
              } \
          '), null, null),
          Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService).AGENT_SHEET
        );
    
        function saveTo() {
            // Config
            var dirArray = [
            ["F:\\Users\\bege\\Desktop", "Desktop"],
            ["F:\\Setups\\Dateiverwaltung\\FreeCommander", "FreeCommander"],
            ["F:\\Eigene Dateien\\PRIVAT\\Finanzen\\Girokonto GLS", "Girokonto GLS"],
            ["F:\\Eigene Dateien\\PRIVAT\\Finanzen\\Kreditkarte GLS", "Kreditkarte GLS"],
            ["F:\\Eigene Dateien\\DOWNLOADS", "Downloads"],
            ["F:\\Eigene Dateien\\DriveOnWeb", "DriveOnWeb"],
            ["F:\\Eigene Dateien\\Eigene Bilder\\Symbole", "Symbole"],
            ["F:\\Users\\bege\\AppData\\Roaming\\Mozilla\\Firefox\\icons", "Firefox\\Icons"],
            ["F:\\Setups\\Internet", "Setups\\Internet"],
            ["F:\\Setups\\Audio-Video", "Setups\\Audio-Video"],
            ["F:\\Eigene Dateien\\Eigene Bilder\\aktuelleDownloads", "Bilder"],
            ["F:\\Eigene Dateien\\Eigene Musik\\aktuelleDownloads", "Musik"],
            ["F:\\Eigene Dateien\\Eigene Videos\\aktuelleDownloads", "Videos"],
            ["" + FileUtils.getDir('UChrm', []).path + "", "chrome"],
            ["" + FileUtils.getDir('UChrm', ['CSS']).path + "", "CSS"],
            ["" + FileUtils.getDir('UChrm', ['JS']).path + "", "JS"],
            ["C:\\", "C:"],
            ["E:\\", "E:"],
            ["F:\\", "F:"],
            // ["G:\\", "G:"],
            // ["H:\\", "H:"],
            ["I:\\", "I:"],
            ["S:\\", "S:"]
            ];
            
            let button = document.getElementById("unknownContentType").getButton("cancel");
            let saveTo = button.parentNode.insertBefore(document.createXULElement("button"), button);
            var saveToMenu = saveTo.appendChild(document.createXULElement("menupopup"));
            saveTo.classList.toggle("dialog-button");
            saveTo.label = "Speichern unter";
            saveTo.type = "menu";
              saveToMenu.classList.toggle("menu-iconic");
            dirArray.forEach(function(dir) {
                var [name, dir] = [dir[1], dir[0]];
                var mi = document.createXULElement("menuitem");
                var item = saveToMenu.appendChild(mi);
                item.setAttribute("label", (name || (dir.match(/[^\\/]+$/) || [dir])[0]));
                item.setAttribute("image", "moz-icon:file:///" + dir + "\\");
                item.setAttribute("class", "menuitem-iconic");
                item.addEventListener("command", function() {
                    var file = new FileUtils.File(dir.replace(/\\/g, '\\\\') + '\\\\' + (document.getElementById('locationtext') ? document.getElementById('locationtext').value : document.getElementById('location').value));
                    dialog.mLauncher.saveToDisk(file, 1);
                    dialog.onCancel = function() {};
                    close();
                });
            });
        }
    }());
    Alles anzeigen

    Hat sich bei dem Befehl in Zeile 76 etwas geändert?

  • Symbole zu Kontextmenüs mit Javascript und CSS hinzufügen

    • bege
    • 2. Juli 2020 um 16:47

    bananovic  Endor

    Ich habe die IDs zugefügt, so funktioniert Endors Code bei mir auch in Thunderbird.

    (Achtung, die URLs sind geändert!)

    CSS
    /* Firefox Quantum Symbole für Add-ons-Manager von Endor ************************************************/
    /* Angepasst für Thunderbird von bege */
    /* https://www.camp-firefox.de/forum/thema/129954-symbole-zu-kontextmen%C3%BCs-mit-javascript-und-css-hinzuf%C3%BCgen/?postID=1137566#post1137566/
    /****************************************************************************************/
    
    
    @-moz-document url-prefix(chrome://mozapps/content/extensions/extensions.xul), url-prefix(about:addons),url-prefix(chrome://mozapps/content/extensions/aboutaddons.html) {
    
    
    #page-options > panel-list:nth-child(1) > panel-item:nth-child(1)::before, #utils-updateNow::before {
    content: '';
    display: block;
    width: 16px;
    height: 16px;
    background-image: url('../../../../icons/Bild5.png');
    margin-left: 5px;
    margin-right: -21px;}
    
    #page-options > panel-list:nth-child(1) > panel-item:nth-child(2)::before, #utils-viewUpdates::before {
    content: '';
    display: block;
    width: 16px;
    height: 16px;
    background-image: url('../../../../icons/Bild61.png');
    margin-left: 5px;
    margin-right: -21px;}
    
    #page-options > panel-list:nth-child(1) > panel-item:nth-child(4)::before, #utils-installFromFile::before {
    content: '';
    display: block;
    width: 16px;
    height: 16px;
    background-image: url('../../../../icons/Bild3.png');
    margin-left: 5px;
    margin-right: -21px;}
    
    #page-options > panel-list:nth-child(1) > panel-item:nth-child(5)::before, #utils-debugAddons::before {
    content: '';
    display: block;
    width: 16px;
    height: 16px;
    background-image: url('../../../../icons/Bild66.ico');
    margin-left: 5px;
    margin-right: -21px;}
    
    
    #page-options > panel-list:nth-child(1) > panel-item:nth-child(7), #utils-autoUpdateDefault {
    fill: transparent !important;}
    
    #page-options > panel-list:nth-child(1) > panel-item:nth-child(7)::before, #utils-autoUpdateDefault::before {
    content: '';
    display: block;
    width: 16px;
    height: 16px;
    background: url('../../../../icons/check.png') no-repeat !important;
    margin-left: 5px;
    margin-right: -21px !important;}
    
    #page-options > panel-list:nth-child(1) > panel-item:nth-child(7):not([checked])::before, #utils-autoUpdateDefault[checked="false"]::before {
    content: '';
    /* content: 'Nicht die';
    font-size: 14px;
    padding-left: 22px !important;
    padding-right: 35px !important;
    padding-top: 1px !important;
    padding-bottom: 6px !important;
     */
    display: block;
    width: 16px;
    height: 16px;
    background: url('../../../../icons/Bild63.png') no-repeat !important;
    margin-left: 5px;
    margin-right: -21px;}
    
    
    #page-options > panel-list:nth-child(1) > panel-item:nth-child(8)::before, #utils-resetAddonUpdatesToAutomatic::before {
    content: '';
    display: block;
    width: 16px;
    height: 16px;
    background-image: url('../../../../icons/Bild64.png');
    margin-left: 5px;
    margin-right: -21px;}
    
    #page-options > panel-list:nth-child(1) > panel-item:nth-child(10)::before, #manage-shortcuts::before {
    content: '';
    display: block;
    width: 16px;
    height: 16px;
    background-image: url('../../../../icons/Bild67.png');
    margin-left: 5px;
    margin-right: -21px;}
    Alles anzeigen
  • Hoher Speicherverbrauch seit Fx 77?

    • bege
    • 30. Juni 2020 um 20:06
    Zitat von .DeJaVu

    Und wenn andere das Problem hätten und es wäre ein Firefox-Fehler, dann wäre das Forum schon voll mit solchen Anfragen.

    Das sehe ich auch so. Deshalb ist meine eigentliche Frage damit auch beantwortet. Liegt also irgendwo am Profil.

    Danke für eure Bereitschaft zu helfen.

  • Hoher Speicherverbrauch seit Fx 77?

    • bege
    • 25. Juni 2020 um 18:11
    Zitat von Boersenfeger

    Bitte sei so gut und poste deine Erweiterungen und ggf. die benutzte Sicherheitssoftware.. dann könnte man vielleicht was sagen, so aber sicher nicht!!

    Starte als Kurzangriff Firefox im Safe-Mode mit gedrückter UMSCHALT-Taste und schaue auf den Verbrauch. Wenn sich daran nichts ändert, ist Firefox nicht schuld, suche dann im System nach Verbraucher...

    Hallo Boersenfeger,

    danke für deine Antwort.

    Der Fx verbraucht hier bei 4-5 Tabs bis zu 1,5 GB RAM, dafür habe ich vor einiger Zeit ca. 20 Tabs benötigt. Es geht also nicht um einen hohen Gesamt-Speicherverbrauch auf dem System.

    Wie schon gesagt habe ich gerade keine Zeit, mit dem Profil zu testen, deshalb meine Frage. Hätte ja sein können, dass andere das auch erleben. Da niemand meine Erfahrung bestätigt, vermute ich, dass es am Profil liegt.

  • Hoher Speicherverbrauch seit Fx 77?

    • bege
    • 22. Juni 2020 um 22:41

    Hallo,

    seit einiger Zeit stelle ich beim Fx einen höheren Speicherverbrauch fest. Das ist ungefähr seit dem Update auf 77, kann aber natürlich auch mit jedem Update einer der vielen Erweiterungen zusammenhängen, die ich installiert habe. Da ich z.Zt. nicht die Zeit habe, mit Profilen und Erweiterungen zu testen, hier erstmal die Frage, ob noch jemand diese Erfahrung gemacht und vielleicht schon eine Ursache dafür gefunden hat.

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

    • bege
    • 21. Februar 2020 um 13:57

    So, jetzt läuft's bei mir. Danke an milupo und Endor . Das Skript von Endor ist eine Kombination aus dem alten und dem neuen Skript, bei den Profil-Ordnern ist es der alte Code. Ich habe es nicht probiert, kann mir aber nicht vorstellen, dass es funktioniert, weil es die Funktion "getPrefDirPath" im neuen Skript gar nicht mehr gibt.

    Ein Abschnitt des Codes sieht bei mir so aus:

    JavaScript
            ["F:\\Eigene Dateien\\Eigene Bilder\\aktuelleDownloads", "Bilder"],
            ["F:\\Eigene Dateien\\Eigene Musik\\aktuelleDownloads", "Musik"],
            ["F:\\Eigene Dateien\\Eigene Videos\\aktuelleDownloads", "Videos"],
            ["" + FileUtils.getDir('UChrm', []).path + "", "chrome"],
            ["" + FileUtils.getDir('UChrm', ['CSS']).path + "", "CSS"],
            ["" + FileUtils.getDir('UChrm', ['JS']).path + "", "JS"],
            ["C:\\", "C:"],
            ["E:\\", "E:"],
            ["F:\\", "F:"],
            ["G:\\", "G:"],
            ["H:\\", "H:"],
            ["I:\\", "I:"],
            ["S:\\", "S:"]
            ];
            
            let button = document.getElementById("unknownContentType").getButton("cancel");
            let saveTo = button.parentNode.insertBefore(document.createXULElement("button"), button);
            var saveToMenu = saveTo.appendChild(document.createXULElement("menupopup"));
            saveTo.classList.toggle("dialog-button");
            saveTo.label = "Speichern unter";
    Alles anzeigen

    CSS und JS sind Unterordner des chrome-Ordners.

    Wie schon erwähnt, muss noch "save to" übersetzt werden, hier in der letzten Zeile.

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

    • bege
    • 21. Februar 2020 um 11:49

    Seit noch nicht allzu langer Zeit (da ich es nicht dauernd nutze, weiß ich nicht, mit welchem Update das losging) geht beim Fx 73.0.1 das Skript saveto.uc.js nicht mehr. Es soll im Download-Dialog eine Liste mir voreingestellten Zielen für den Download zur Auswahl anbieten. Diese Liste kommt nicht mehr. Ich habe gesehen, dass auch der Download-Dialog jetzt die Endung xhtml hat. Obwohl ich das geändert habe, funktioniert das Skript aber trotzdem nicht.

    Weiß jemand, woran es liegt?

    JavaScript
    // ==UserScript==
    // @include       chrome://mozapps/content/downloads/unknownContentType.xhtml
    // @charset       UTF-8
    // ==/UserScript==
    
    if (location == "chrome://mozapps/content/downloads/unknownContentType.xhtml") {
    (function () {
    
        function getQuery(str) {
            return document.querySelector(str);
        }
    
        function getPrefDirPath(str) {
            Components.utils.import("resource://gre/modules/Services.jsm");
            var prefDir = Services.dirsvc.get(str, Ci.nsIFile).path;
            return prefDir;
        }
    
        var dir = [
            ["" + getPrefDirPath('UChrm') + "", "chrome"],
            ["" + getPrefDirPath('UChrm') + "\\" + 'JS' + "", "chrome\\JS"],
            ["" + getPrefDirPath('UChrm') + "\\" + 'CSS' + "", "chrome\\CSS"],
            ["C:\\", "C:"],
            ["E:\\", "E:"],
            ["F:\\", "F:"],
            ["G:\\", "G:"],
            ["H:\\", "H:"],
            ["I:\\", "I:"],
            ["S:\\", "S:"]
        ];
    
        var button = document.documentElement.getButton("cancel");
        var saveTo =  button.parentNode.insertBefore(document.createXULElement("button"), button);
        var saveToMenu = saveTo.appendChild(document.createXULElement("menupopup"));
        saveTo.className = "dialog-button";
        saveTo.label = "Speichern auf";
        saveTo.type = "menu";
        dir.map(function (dir) {
            var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter);
            converter.charset = "UTF-8";
            var name = converter.ConvertToUnicode(dir[1]);
            dir = converter.ConvertToUnicode(dir[0]);
            var item = saveToMenu.appendChild(document.createXULElement("menuitem"));
            item.setAttribute("label", (name||(dir.match(/[^\\/]+$/) || [dir])[0]));
            item.setAttribute("image", "moz-icon:file:///" + dir + "\\");
            item.setAttribute("class", "menuitem-iconic");
            item.setAttribute("oncommand", 'var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); file.initWithPath("' + dir.replace(/\\/g, "\\\\") + "\\\\" + (getQuery("#locationtext") ? getQuery("#locationtext").value : getQuery("#location").value) + '"); dialog.mLauncher.saveToDisk(file,1); dialog.onCancel = function() {}; close();');
        });
    
    })();
    }
    Alles anzeigen
  • Symbole zu Kontextmenüs mit Javascript und CSS hinzufügen

    • bege
    • 21. Februar 2020 um 02:06
    Zitat von aborix

    Die Symbole im Untermenü Web-Entwickler anzeigen zu lassen, ist anscheinend mit einem einfacheren Code als dem aus #36 möglich.

    Bitte teste:

    JavaScript
    setTimeout(() => {
      let { require } = ChromeUtils.import('resource://devtools/shared/Loader.jsm', {});
      require('resource://devtools/client/framework/devtools-browser');
    }, 0);

    Funktioniert :thumbup: Dankeschön :)

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

    • bege
    • 19. Februar 2020 um 19:48
    Zitat von aborix
    Zitat von bege
    JavaScript
            key.setAttribute('oncommand', 'document.getElementById("AMPopup").openPopup();');

    Nicht "AMPopup", sondern "AMpopup".

    :thumbup::D:!::!::!:

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

    • bege
    • 19. Februar 2020 um 17:31
    Zitat von Büssen
    ...

    Alle Einträge im Appmenu.uc.js funktionieren - außer "Browser-Wekzeuge".

    Die kann ich aber immer noch (wenn gebraucht) mit Strg+Umschalt+I aufrufen.

    Wie ich bereits angemerkt habe: mit diesem kleinen Manko kann ich leben! :)

    Mit Strg+Umschalt+I öffnen sich die Webentwickler-Werkzeuge, die für Inhaltsseiten sind.

    Die Browser-Werkzeuge, mit denen die Browseroberfläche untersucht werden kann, öffnen sich mit Strg+Alt+Umschalt+I

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

    • bege
    • 19. Februar 2020 um 17:18
    Zitat von 2002Andreas
    Zitat von bege

    in dieses Thema zu verschieben?

    Hallo bege ...

    ich war eine Weile offline, darum erst jetzt meine Antwort.

    Ich kann das zwar alles teilen bzw. verschieben, aber dann ist einges auch aus dem Kontext wie man so sagt.

    Und nach dem Beitrag den du oben vorschlägst, gab es ja auch noch Beiträge von dir.

    Ja klar, mir geht's auch nicht darum, wer geschrieben hat, sondern nur, dass im Diskussions-Thema alles zu den Skripten beieinander wäre. Bei den Beiträgen #55-#58 ist der Kontext tatsächlich nicht ganz eindeutig. Danach geht's eindeutig nur noch um die Skripte browsertoolbox.uc.js und AppMenu.uc.js. Die Entscheidung, ob und wie die Beiträge kopiert/verschoben werden, liegt bei dir als Moderator. Ist nur eine Frage bzw. Anregung von mir.

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

    • bege
    • 19. Februar 2020 um 17:03
    Zitat von aborix

    Bei oncommand soll stehen:

    document.getElementById("AMPopup").openPopup();

    Der Rest stimmt.

    Der Code kann in einer eigenen function stehen, in diesem Fall hänge ihn am Ende des Skripts an.

    Der Code kann auch ohne function bleiben und dann füge ihn nach diesen Zeilen (die Zeilennummern stimmen vielleicht nicht genau) ein:

    JavaScript
            ExternalAppBtn.appendChild(ExternalAppPopup);
            Appmenu.onpopupshowing();

    Da lag ich ja fast richtig. Sieht jetzt so aus (mit den Zeilen davor und danach):

    JavaScript
            ExternalAppBtn.appendChild(ExternalAppPopup);
            Appmenu.onpopupshowing();
            
              // Menü mit Tastaturkürzel öffnen
            let key = document.createXULElement('key');
            key.id = 'key_AppMenuPopup';
            key.setAttribute('key', 'A');
            key.setAttribute('modifiers', 'alt');
            key.setAttribute('oncommand', 'document.getElementById("AMPopup").openPopup();');
            document.getElementById('mainKeyset').appendChild(key);
        },
    
        onpopupshowing: function() {
            if (this._isready)
    Alles anzeigen

    Aber obwohl der key im keyset zu finden ist, passiert immer noch nichts, wenn ich Alt+A drücke. In dem Moment erscheint in der Konsole dieser Eintrag:

    16:48:21.654 TypeError: document.getElementById(...) is null                      browser.xhtml:1:10                                               oncommand chrome://browser/content/browser.xhtml:1

    16:48:23.390 Error: Invalid window ID: -1                                                    ExtensionUtils.jsm

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

    • bege
    • 18. Februar 2020 um 20:07

    2002Andreas Dieses Thema hat sich für mich zu einer wahren Schatzkiste entwickelt. Da eine Frage die nächste ergeben hat, sind wir ab RE: Symbole zu Kontextmenüs mit Javascript und CSS hinzufügen vom eigentlichen Thema weg hin zu einer Diskussion über Userskripte gekommen, die wir sonst im Thema userChrome.js Scripte für den Fuchs (Diskussion) behandeln.

    Wäre es, damit die hilfreichen Beiträge hier nicht verloren gehen, sinnvoll, die Beiträge ab dem o.g. in dieses Thema zu verschieben?

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

    • bege
    • 18. Februar 2020 um 19:42
    Zitat von aborix

    bege :

    Falls du es selbst versuchen willst, dieser Beitrag kann als Vorlage dienen.

    Außerdem eine Dokumentation: MDN - key, und sieh dir im Inspektor die keys in den keysets an.

    Danke für dein Zutrauen :/

    Ich habe aufs Geratewohl diesen Code ans Ende der init: function gehängt. Ich habe eine Tastenkombination gewählt, die in einem anderen Skript funktioniert (und dieses Skript deaktiviert). Immerhin wirft die Browser-Konsole keinen Fehler aus, aber es passiert auch nichts.

    JavaScript
              let key = document.createXULElement('key');
              key.id = 'key_AppMenuPopup';
              key.setAttribute('key', 'A');
              key.setAttribute('modifiers', 'alt');
              key.setAttribute('oncommand', 'Appmenu.onpopupshowing();');
              document.getElementById('mainKeyset').appendChild(key);

    Wohin muss der Code? Muss das eine eigene komplette function sein?

    Ist der Eintrag für oncommand richtig?

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

    • bege
    • 18. Februar 2020 um 19:13
    Zitat von Büssen

    milupo,

    in meinem Fall - s.a. auch meinen 1. Einwurf im #67 hatte ich nur die Änderung für mein Appmenu.uc.js eingebaut.

    Es rührte/n sich die Browser-Konsole u. auch Browser-Werkzeuge nicht.

    Mit Hilfe von Endor bekam ich die Konsole zum Laufen - die Werkzeuge streikten.

    Auch mit der neuesten Version von Endor klappt es nur mit der Konsole, aber nicht mit den Werkzeugen.

    Ich kann damit leben :)

    Alles anzeigen

    Funktionieren die Browser-Werkzeuge denn, wenn du sie aus dem normalen Browser-eigenen Extras-Untermenü aufrufst?

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

    • bege
    • 18. Februar 2020 um 17:58
    Zitat von Endor

    Hallo aborix .

    Danke für die beiden Script Teile, funktionieren beide bestens.

    :klasse:

    bege

    Mein Script zum Öffnen der Browserwerkzeuge kannst Du weglassen.

    Einfach im Script Appmenu.uc.js welches Du ja verwendest

    diesen Abschnitt einfügen, ambesten gleich nach dem Eintrag für Browser-Konsole:

    JavaScript
                {
                    name: 'Browser-Werkzeuge',
                    subdir: 'Firefox Funktionen',
                    image:'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAdUlEQVQokZVSwRHAIAgLPYfoXs7RCTpG53Avt7APrhaFU8gLMEEJAkEQgFbc7IxkVjt0r6Sp7VIVITumBpKt00FA2ThmjXzkfMMWO8EZFSj8LrUyjsG9b9DaJXq+qAIVxEUxtLHpaXE95dj1NcK2rmbwaGJ4Af0tIg00j/6iAAAAAElFTkSuQmCC',
                    command: "var { require } = ChromeUtils.import('resource://devtools/shared/Loader.jsm', {});\
                              var { BrowserToolboxLauncher } = require('resource://devtools/client/framework/browser-toolbox/Launcher.jsm');\
                              BrowserToolboxLauncher.init();",
                },

    Nach dem Einfügen und neu Starten von Firefox mit Scriptcache leeren,

    hast Du in Appmenu der Appmenuschaltfläche unter Firefox Funktionen dann
    den Eintrag zum Öffnen der Browserwerkzeuge.

    Mfg.
    Endor

    Alles anzeigen

    Nach ein paar Tagen zurück am Computer ist dieses Thema ist voller Geschenke. Vielen Dank dafür, aborix , Endor , milupo .

    Weil ich, wenn ich viel am Fx bastele, gern auch noch den Toolbarbutton von Endor haben will (erspart das Öffnen des AppMenu), habe ich aborix' Code eingebaut, so dass es jetzt so aussieht und auch bei mir funktioniert, egal wohin ich das Webentwickler-Menü verschoben habe.

    JavaScript
    //  browsertoolbox.uc.js
    
    (function() {
    
        if (location != 'chrome://browser/content/browser.xhtml')
            return;
    
        try {
            CustomizableUI.createWidget({
                id: 'browser-toolbox-button',
                type: 'custom',
                defaultArea: CustomizableUI.AREA_NAVBAR,
                onBuild: function(aDocument) {
                    var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                    var props = {
                        id: 'browser-toolbox-button',
                        class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                        label: 'Browser-Werkzeuge',
                        tooltiptext: 'Browser-Werkzeuge',
                        style: 'list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAdUlEQVQokZVSwRHAIAgLPYfoXs7RCTpG53Avt7APrhaFU8gLMEEJAkEQgFbc7IxkVjt0r6Sp7VIVITumBpKt00FA2ThmjXzkfMMWO8EZFSj8LrUyjsG9b9DaJXq+qAIVxEUxtLHpaXE95dj1NcK2rmbwaGJ4Af0tIg00j/6iAAAAAElFTkSuQmCC)',
                        oncommand: '(' + onCommand.toString() + ')()'
                    };
                    for (var p in props)
                        toolbaritem.setAttribute(p, props[p]);
                    return toolbaritem;
                }
            });
            CustomizableUI.registerToolbarNode(tb);
           } catch(e) { };  
    
        function onCommand() {
             var { require } = ChromeUtils.import('resource://devtools/shared/Loader.jsm', {});
                var { BrowserToolboxLauncher } = require('resource://devtools/client/framework/browser-toolbox/Launcher.jsm');
                BrowserToolboxLauncher.init();
        };
    
    })();
    Alles anzeigen

    Um das Skript zu perfektionieren, würde ich gern noch den zweiten Codeschnipsel von aborix einbauen, um mit einem Mittelklick die Browser-Konsole zu öffnen. Das kriege ich trotz mehrere Versuche nicht hin. Kann mir jemand helfen?

Unterstütze uns!

Jährlich (2026)

35,3 %

35,3% (273,24 von 775 EUR)

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