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

  • Adressleiste ausserhalb Bildschirm

    • Mira_Belle
    • 8. August 2025 um 23:54

    Entschuldigt, wenn ich mich jetzt hier einklinke, aber was hat dieses Säbelrasseln mit dem Problem zu tun?

    Es ging um einen Selektor in einem CSS der dazu führte, dass beim anklicken des Adressfeldes das dazugehörige Popup
    die "Sicht" versperrte!

    Das Problem wurde doch gelöst!

    Und ganz ehrlich, weder bei Aris noch bei MrOtherGuy findet man eine Lösung genau zu diesem Problem!

    GermanFreme82 kann gerade so den Browser bedienen und hat es irgendwie, wahrscheinlich mithilfe von Andreas,
    seinen Firefox so anzupassen, dass er gut damit arbeiten kann.
    Und da Mozilla ständig den Firefox weiterentwickelt, wird es immer wieder passieren, dass eigene Anpassungen,
    sei es per CSS oder eben auch per JS immer mal wieder korrigiert werden müssen!

    Und? Tja auch Aris und auch MrOtherGuy müssen das tun.
    Und wo gibt es jetzt einen Grund, sich zu streiten?
    Ob ich nun fertige Lösungen von Aris oder wem auch immer nutze, oder eben "besondere" Werke hier aus dem Board,
    wenn sie nicht mehr funktionieren, muss nachgebessert werden.

    Aber Aris, wie auch MrOtherGuy bieten eher Komplettpakete an, hier on Board gibt es maßgeschneiderte Lösungen,
    ganz individuell auf bestimmte Wünsche angepasst!

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 8. August 2025 um 18:23

    Ah,grrr.
    Na klar! "Test ohne" wird als zwei Parameter interpretiert!
    Mach mal "Test_ohne" daraus und ändere das auch im Skript.
    Oder auch "Test-ohne". Eventuell funktioniert auch "Test.ohne".

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 8. August 2025 um 17:37

    Bitte Testen!


    JavaScript
    // ==/UserScript==
    (function() {
        "use strict";
    
        if (location != 'chrome://browser/content/browser.xhtml') return;
    
        /*
            Vor Verwendung, Pfad auf eigene Umgebung ändern(\ wird durch \\ ersetzt)
            Zum Übergeben von Argumenten, wie folgt vorgehen:
            C:\\Program Files\\Internet Explorer\\iexplore.exe<>$1 Argument Argument
            ※ $1 wird in URL umgewandelt
        */
        const BrowserPath = {
            "Nightly": "C:\\Program Files\\Firefox Nightly\\firefox.exe",
            "Firefox": "C:\\Program Files\\Mozilla Firefox\\firefox.exe",
            "Vivaldi": "C:\\Users\\Andreas\\AppData\\Local\\Vivaldi\\Application\\vivaldi.exe",
            "Edge": "C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe",
            "IE": "C:\\Program Files\\Internet Explorer\\iexplore.exe",
            "Test ohne":			"C:\\Program Files\\Mozilla Firefox\\firefox.exe<>$1 -no-remote -P Test ohne -foreground",
            "Clean":				"C:\\Program Files\\Mozilla Firefox\\firefox.exe<>$1 -no-remote -P Clean -foreground",
        };
    
        const FlatMenu = false;
    
        const OpenWith = {
            start: function() {
                const cm = document.getElementById("contentAreaContextMenu");
                cm.addEventListener("popupshowing", function(e) {
                    if (e.target == this) {
                        OpenWith.onpopup(e);
                    }
                }, false);
            },
    
            createMenu: function() {
                if (this.pageItem) {
                    return;
                }
    
                const contextMenu = document.getElementById("contentAreaContextMenu");
                const pageMenu = this.$C("menu", {
                    id: "context-open-with-page",
                    label: "Seite öffnen mit:"
                });
                contextMenu.insertBefore(pageMenu, contextMenu.querySelector(":scope > #context-bookmarkpage, :scope > #context-savepage"));
    
                this.pageItem = this.createMenuItem(pageMenu, "openPage", FlatMenu ? "Seite öffnen mit $1 " : "  $1");
            },
    
            createMenuItem: function(menu, method, format) {
                const frag = document.createDocumentFragment();
    
                let menuitem = [];
                for (let i of Object.keys(BrowserPath)) {
                    const item = this.$C("menuitem", {
                        label: format.replace("$1", i),
                        class: "menuitem-iconic",
                        image: "moz-icon:file:///" + encodeURIComponent(BrowserPath[i].split("<>")[0]) + "?size=16",
                        value: JSON.stringify([method, i]),
                    });
                    item.addEventListener("command", this, false);
    
                    frag.appendChild(item);
                    menuitem[menuitem.length] = item;
                }
    
                if (!FlatMenu) {
                    const menupopup = this.$C("menupopup");
                    menupopup.appendChild(frag);
                    menu.appendChild(menupopup);
                    menuitem = [menu];
                } else {
                    const parent = menu.parentNode;
                    parent.insertBefore(frag, menu);
                    parent.removeChild(menu);
                }
    
                return menuitem;
            },
    
            $C: function(tag, attrs) {
                const elem = document.createXULElement(tag);
                if (attrs) {
                    for (let key of Object.keys(attrs))
                        elem.setAttribute(key, attrs[key]);
                }
                return elem;
            },
    
            onpopup: function(e) {
                this.createMenu();
    
                const isHtml = /^(https?|file):/.test(gBrowser.currentURI.spec);
                const pageItemHidden = !isHtml || gContextMenu.onLink || gContextMenu.onTextInput;
    
                const pageItem = this.pageItem;
                for (let i = 0, l = pageItem.length; i < l; i++) {
                    pageItem[i].hidden = pageItemHidden;
                }
            },
    
            handleEvent: function(event) {
                if (event.type === "command") {
                    const [method, key] = JSON.parse(event.originalTarget.getAttribute("value"));
                    const url = gBrowser.currentURI.spec;
                    this.launch(BrowserPath[key], url);
                }
            },
    
            launch: function(browserPath, openURL) {
                let [path, args] = browserPath.split("<>");
                if (args) {
                    args = args.split(" ").map(a => a.replace("$1", openURL)); // Split bei Leerzeichen
                } else {
                    args = [openURL];
                }
    
                console.log("Call: " + args);
    
                const file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
                file.initWithPath(path);
    
                const process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess);
                process.init(file);
                process.run(false, args, args.length, {});
            },
        };
    
        OpenWith.start();
    
    })();
    Alles anzeigen

    Und wer Links einfach in einem anderen Browser oder in einem anderen Firefoxprofil öffnen möchte:


    JavaScript
    (function() {
    "use strict";
    
    if (location != 'chrome://browser/content/browser.xhtml') return;
    
    /*
    	Vor Verwendung, Pfad auf eigene Umgebung ändern(\ wird durch \\ ersetzt)
    	Zum Übergeben von Argumenten, wie folgt vorgehen:
    	C:\\Program Files\\Internet Explorer\\iexplore.exe<>$1 Argument Argument
    	※ $1 wird in URL umgewandelt
    */
        const BrowserPath = {
            "Nightly": "C:\\Program Files\\Firefox Nightly\\firefox.exe",
            "Firefox": "C:\\Program Files\\Mozilla Firefox\\firefox.exe",
            "Vivaldi": "C:\\Users\\Andreas\\AppData\\Local\\Vivaldi\\Application\\vivaldi.exe",
            "Edge": "C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe",
            "IE": "C:\\Program Files\\Internet Explorer\\iexplore.exe",
            "Test ohne":			"C:\\Program Files\\Mozilla Firefox\\firefox.exe<>$1 -no-remote -P Test ohne -foreground",
            "Clean":				"C:\\Program Files\\Mozilla Firefox\\firefox.exe<>$1 -no-remote -P Clean -foreground",
        };
    
    const FlatMenu = false;
    
    const OpenWith = {
    	start: function() {
    		const cm = document.getElementById("contentAreaContextMenu");
    		cm.addEventListener("popupshowing", function(e) {
    			if (e.target == this) { OpenWith.onpopup(e); }
    		}, false);
    	},
    
    	createMenu: function() {
    		// Nur einmal ausführen
    		if (this.linkItem) {	
    			return;
    		}
    
    		const contextMenu = document.getElementById("contentAreaContextMenu");
    		
    		// Nur noch das Link-Menü erstellen
    		const linkMenu = this.$C("menu", { id: "context-open-with-link", label: "Link öffnen mit:" });
    		contextMenu.insertBefore(linkMenu, contextMenu.querySelector(":scope > #context-sep-open"));
    
    		// Nur noch die Menüeinträge für den Link erstellen
    		this.linkItem = this.createMenuItem(linkMenu, "openLink", FlatMenu? "Link öffnen mit $1 ":"  $1");
    	},
    	
    	createMenuItem: function(menu, method, format) {
    		const frag = document.createDocumentFragment();
    		
    		let menuitem = [];
    		for (let i of Object.keys(BrowserPath)) {
    			const item = this.$C("menuitem", {
    				label:	format.replace("$1", i),
    				class:	"menuitem-iconic",
    				image:  "moz-icon:file:///" + encodeURIComponent(BrowserPath[i].split("<>")[0]) + "?size=16",
    				value:	JSON.stringify([ method, i ]),
    			});
    			item.addEventListener("command", this, false);
    
    			frag.appendChild(item);
    			menuitem[menuitem.length] = item;
    		}
    		
    		if (!FlatMenu) {
    			const menupopup = this.$C("menupopup");
    			menupopup.appendChild(frag);
    			menu.appendChild(menupopup);
    			menuitem = [ menu ];
    		}
    		else {
    			const parent = menu.parentNode;
    			parent.insertBefore(frag, menu);
    			parent.removeChild(menu);
    		}
    		
    		return menuitem;
    	},
    
    	$C: function(tag, attrs) {
    		const elem = document.createXULElement(tag);
    		if (attrs) {
    			for (let key of Object.keys(attrs))
    				elem.setAttribute(key, attrs[key]);
    		}
    		return elem;
    	},
    
    	onpopup: function(e) {
    		this.createMenu();
    		
    		// Logik für das Seiten-Menü wurde entfernt.
    		// Das Link-Menü wird nur angezeigt, wenn man auf einem Link ist.
    		const isHtml = /^(https?|file):/.test(gBrowser.currentURI.spec);
    		const linkItemHidden = !isHtml || !gContextMenu.onLink || gContextMenu.onTextInput;
    		
    		const linkItem = this.linkItem;
    		for (let i = 0, l = linkItem.length; i < l; i++) {
    			linkItem[i].hidden = linkItemHidden;
    		}
    	},
    
    	handleEvent: function(event) {
    		if (event.type === "command") {
    			// Da es nur noch "openLink" gibt, kann die Logik vereinfacht werden.
    			const [ method, key ] = JSON.parse(event.originalTarget.getAttribute("value"));
    			const url = gContextMenu.linkURL; // Es wird immer die Link-URL sein
    			this.launch(BrowserPath[key], url);
    		}
    	},
    
    	launch: function(browserPath, openURL) {
    		let [ path, args ] = browserPath.split("<>");
    		if (args) {
    			args = args.split(" ").map(a => a.replace("$1", openURL));
    		} else {
    			args = [ openURL ];
    		}
    		
    		const file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
    		file.initWithPath(path);
    		
    		const process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess);
    		process.init(file);
    		process.run(false, args, args.length, {});
    	},
    };
    
    OpenWith.start();
    
    })();
    Alles anzeigen

    Es lassen sich auch parallel betreiben!

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 8. August 2025 um 17:05

    2002Andreas Interessant!
    Reicht es Dir, wenn das Menü nur bei Links erscheint?
    Also wenn Du nur Links mit einem anderen Browser und/oder einem anderen Firefoxprofil öffnen willst?

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 8. August 2025 um 16:00
    Zitat von 2002Andreas

    Aber auch dann wird wieder das Standard Profil (Test-Ohne) geöffnet

    Wenn Du "Clean" auswählst?

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 8. August 2025 um 15:38

    2002Andreas Wenn Du nur Deine "Testprofile" einbinden möchtest, ....

    Code
    	"Test ohne":			"C:\\Program Files\\Mozilla Firefox\\firefox.exe<>$1 -no-remote -P Test ohne -foreground",
    	"Clean":				"C:\\Program Files\\Mozilla Firefox\\firefox.exe<>$1 -no-remote -P Clean -foreground",
  • Profil zerschossen nach Nightly-Update

    • Mira_Belle
    • 7. August 2025 um 10:30

    Danke Euch, alle Skripte kontrolliert und zwei musste ich korrigieren.

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 7. August 2025 um 09:52

    BrokenHeart In #109 habe ich es so gut ich kann versucht zu erklären!
    Aber in kurz, es öffnet sie nie der ausgewählte Link in einem neuen Fenster!
    Wenn es klappt, dass ein neues Fenster geöffnet wird, dann öffnet sich Startseite.

    An die Veränderung der user_pref bzw. in 'about:config' wage ich mich nicht dran!
    Habe mir allzu oft den FF dadurch ruiniert und konnte ihn nur durch ein Backup retten.
    Auch sind meine Werte ganz andere!

    "Links in Tabs anstatt in neuen Fenstern öffnen" ist bei mir aktiviert!
    Das wird wohl der Grund sein:!:

    Aber ich möchte halt nicht jedes Mal, wenn ich auf einen Link klicke, dass sich immer ein neues Fenster öffnet!

    Meine Hoffnung war ja, dass ich das mit dem Skript "steuern" könnte!
    Bei normalem Klicken auf einen Link ein neuer Tab, mit Skript ein neues Fenster.

    Aber eigentlich ist das gar nicht nötig, was habe ich mich da verrannt:!:
    Im Kontextmenü des Firefox habe ich doch die von mir gewünschte Auswahl!
    Ich Rind.

    Aber mal schauen was lenny antwortet! Für Ihn ist ja das Skript mit der Funktion und dem Anfügen von Argumenten wichtig!

    Ich danke Dir aber sehr <3lich für Deine Mühe.

  • Adressleiste ausserhalb Bildschirm

    • Mira_Belle
    • 6. August 2025 um 22:56

    Ach quatsch, es ist halt schon spät, das ist alles.

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 6. August 2025 um 22:55

    Oweh! =O

    Jetzt bin aber erst recht raus!

    Wie ich schon schrieb, für lenny ist es doof, aber er kann ja Deine Ratschläge,
    nach dem er ein Backup gemacht hat, mal abarbeiten und wenn er Erfolg hat, berichten.

  • Adressleiste ausserhalb Bildschirm

    • Mira_Belle
    • 6. August 2025 um 22:26

    Ein blindes Huhn .... und so.


    Also ich!

  • Symbolabstände in einigen Menüs und Kontextmenüs zu groß

    • Mira_Belle
    • 6. August 2025 um 22:25

    =O Wow.
    Ich habe nur etwa 850 oder 900 Zeilen Code,
    und da ist das Hamburgermenü schon inbegriffen.

    Das Skript kennt Ihr ja:!:

  • Adressleiste ausserhalb Bildschirm

    • Mira_Belle
    • 6. August 2025 um 22:22

    Dann klick mal in das Adressfeld.

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 6. August 2025 um 22:16

    BrokenHeart Danke für Deine Mühe.
    Aber leider auch nichts. Für lenny ist es halt blöd.

    Werde das Skript eventuell nur nutzen, um Links direkt in den Vivaldi zu schicken.
    Das funktioniert ja eins A.

  • Adressleiste ausserhalb Bildschirm

    • Mira_Belle
    • 6. August 2025 um 21:11

    Entferne das:

    CSS
     #urlbar[breakout][breakout-extend] {
     top: calc((var(--urlbar-toolbar-height) - var(--urlbar-height)) / 2) !important;
     left: 0 !important;
     width: 100% !important; }
  • Symbolabstände in einigen Menüs und Kontextmenüs zu groß

    • Mira_Belle
    • 6. August 2025 um 20:52
    Zitat von 2002Andreas

    Viele Wege führen nach Rom ;)

    D.h. aber auch, dass Deine Anpassung, also das CSS ellenlang ist,
    also weit über 850 Zeilen! Oder?

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 6. August 2025 um 20:48

    BrokenHeart Sorry, irgendwie schnall ich es nicht!

    Deine Korrektur eingepflegt!
    Betreffende Zeile so geändert:
    "TEST":                "C:\\Program Files\\Mozilla Firefox\\firefox.exe<>$1 -new-window",
    und was passiert?
    Auf fast allen Seiten das => 404 Not Found

    Und das nicht einmal in einem neuen Fenster, sondern nur in einem neuen Tab.


    Das ganz macht mich noch wahnsinnig!
    Auch "TEST":                "C:\\Program Files\\Mozilla Firefox\\firefox.exe<>$1-new-instance",
    öffnet nur einen neuen Tab, mit der Fehlermeldung.
    Lasse ich das Argument weg, also -new-window oder -new-instanc wird in einem neuen Tab die Seite geöffnet.

    Nur so soll es ja eigentlich nicht sein! Es soll ja ein neues Fenster geöffnet werden.
    Ich werd' noch kirre. 8o

  • Symbolabstände in einigen Menüs und Kontextmenüs zu groß

    • Mira_Belle
    • 6. August 2025 um 20:36
    Zitat von Horstmann

    Das lässt sich nicht direkt übernehmen, aber so schreibt man einen stimmigen CSS Code.
    ...

    so in etwa habe ich es ja umgesetzt!
    Nur schau Dir das CSS von Andreas an, der hat einen anderen Ansatz.

  • Symbolabstände in einigen Menüs und Kontextmenüs zu groß

    • Mira_Belle
    • 6. August 2025 um 19:42

    Ah, dann ich ja alles klar!
    Das habe ich eben nicht bei allen Symbolen,
    sondern habe manche so zusammen gefasst:

    CSS
    menupopup:not(.in-menulist, [aria-label]) > menuitem:not(.menuitem-iconic, [checked="true"]) {
      padding-inline-start: calc(1em + 24px) !important;
    
      padding-inline-start: calc(1em + 48px) !important;
    
      background-position: left 1em center;
    
      background-repeat: no-repeat;
    
      background-size: 16px;
    
      -moz-context-properties: fill, fill-opacity;
    
      fill: #E0E0E0 !important;
    
    }
    Alles anzeigen

    Ist nur ein Beispiel!

    Werde mir überlegen, ob ich es auch auseinanderdrösele.

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 6. August 2025 um 19:33
    Zitat von BrokenHeart

    Du musst dich schon an die exakte Syntax halten, so wie es in der Beschreibung angegeben wurde. aslo <>$1 direkt nach dem Pfad und dann die Argumente.

    Versuche ich!
    Wenn ich "TEST": "C:\\Program Files\\Mozilla Firefox\\firefox.exe nutze, öffnet sich ein neuer Tab.
    Wenn ich "TEST": "C:\\Program Files\\Mozilla Firefox\\firefox.exe<>$1 öffnet sich ein neues Fenster.
    Im ersten Fall wird in dem neuen Tab die verlinkte Seite angezeigt, das ist gut so.
    Im zweiten Fall aber im neuen Fenster nicht!
    Meine Vermutung, der Link, die URL wird nicht richtig übergeben.
    Wobei das wohl nicht so stimmen kann, denn ....
    "TEST": "C:\\Program Files\\Mozilla Firefox\\firefox.exe<>\"%URL%\"-$1",
    dann steht in dem Adressfeld folgendes:
    file:///C:/Program%20Files/Mozilla%20Firefox/%22%URL%%22-https://www.example.de/blog/blablabla/

    Daraus folge ich, dass die Url doch richtig verarbeitet wird.
    \"%URL%\" erzeugt = file:///C:/Program%20Files/Mozilla%20Firefox/%22%URL%%22
    und -$1 erzeugt https://www.example.de/blog/blablabla/

    Wenn ich nur wüste, was ich nicht weiß. ¯_(ツ)_/¯

Unterstütze uns!

Jährlich (2025)

92,9 %

92,9% (604,17 von 650 EUR)

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