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

Beiträge von lenny2

  • Tabs schließen

    • lenny2
    • 20. November 2023 um 13:58
    Zitat von Sören Hentzschel

    aber nicht generell für alle Tabs.

    Wenn ich diesen Mechanismus verwende, habe ich nicht bemerkt, dass er jemals versagt, er funktioniert immer "generell für alle Tabs".

  • Tabs schließen

    • lenny2
    • 20. November 2023 um 12:09
    Zitat von Sören Hentzschel

    sondern dass nach dem Schließen eines Tabs der zuvor aktive Tab aktiviert wird und nicht der Tab, der sich direkt neben dem geschlossenen Tab befindet.

    Oder wird die Tab, von der aus die zu schließende Tab geöffnet wurde, aktiv?

    browser.tabs.selectOwnerOnClose = true

  • Firefox Portable

    • lenny2
    • 20. November 2023 um 10:19

    Eine andere Möglichkeit, Firefox Portable zu erstellen, verwendet libportable. Aus dem portable_bin.7z-Archiv benötigen Sie nur eine Datei portable64.dll oder portable32.dll für Firefox 64-bit bzw. 32-bit. Außerdem müssen Sie kleinere Änderungen in zwei Textdateien vornehmen. Keine Probleme im Betrieb.

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

    • lenny2
    • 14. November 2023 um 10:53

    Reload von userChrome.css und userContent.css ohne Restart von Firefox. Ob es funktioniert oder nicht, weiß ich nicht.

    config.js muss sich im Ordner \Firefox\ befinden.

    Code

    .jsm sollte sich im Ordner \chrome\widget\ befinden.

    Code

    Ich habe es ausprobiert, es funktioniert einwandfrei.

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

    • lenny2
    • 11. November 2023 um 17:50
    Zitat von 2002Andreas

    Links den Code eintragen, dann rechts auf das V für Vorschau klicken.

    Zeilen 14-16

    Code
    subdir: '',
    /* Name der Testdatei */
    file: 'userContent.css'

    Ich nehme Änderungen an userContent.css vor, speichere, klicke auf die Schaltfläche "Vorschau" und die Änderungen werden nicht übernommen. Oder gibt es hier eine andere Logik?

  • Icons fehlen in der Statusleiste

    • lenny2
    • 10. November 2023 um 16:10
    Zitat von graubaer

    An der Schrift habe ich, soweit ich weiß, nichts geändert.

    Möglicherweise haben Sie den Zeilenabstand im Kontextmenü in userChrome.css geändert, und der von Ihnen verwendete Code enthält den Code zum Ändern des Zeilenabstands im Menü "hamburger". Der falsche Code für "hamburger" erzeugt also nur Zeilen, die sich überlappen, wie bei Ihnen. Der korrekte Code unterbricht die Zeilendarstellung der Schaltfläche "Unified Extensions" nicht:

    CSS
    :root {
    --arrowpanel-menuitem-padding: 4px !important;
    }
  • Plötzlich kein Speichern mehr der Chronik

    • lenny2
    • 10. November 2023 um 10:17
    Zitat von Sören Hentzschel

    Aber gerade in Bezug auf Firefox ist es bestenfalls nutzlos und im schlechtesten Fall schädlich und muss bei Datenverlust-Themen immer als potenzielle Ursache mit berücksichtigt werden.

    CCleaner ist nicht an Firefox gebunden, sie sind gleichgültig gegenüber einander. Nicht ein einziges Byte ist in 5 Jahren der Nutzung verloren gegangen. CCleaner ist anders, Sie müssen Portable und ohne Telemetrie verwenden, Sie müssen nicht neue Versionen mit Müll gefüllt verwenden.

  • Script für kürzlich geschlossene Tabs anpassen: Anzahl der Tabs begrenzen (UndoListInTabmenuToo.uc.js)

    • lenny2
    • 10. November 2023 um 10:10

    Button die Dateigröße ist dreimal kleiner.

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

    • lenny2
    • 10. November 2023 um 09:30
    Zitat von harff182

    Das tuts:

    Wunderbar, jetzt weiß ich, wie ich hier ein lokales icon schreiben kann.

  • Plötzlich kein Speichern mehr der Chronik

    • lenny2
    • 10. November 2023 um 09:25
    Zitat von Leviathan34

    addonStartup.json.lz4, compatibility,

    Diese beiden Dateien können problemlos gelöscht werden, beim Neustart werden sie ohne Schaden neu erstellt.

    ExperimentStoreData.json webappsstore.sqlite-wal datum der letzten Änderung vor 10 Tagen.

    Ich würde damit beginnen, die Erweiterungen eine nach der anderen oder alle zu deaktivieren. Übrigens benutze ich auch CCleaner, und es gibt keine negativen Auswirkungen.

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

    • lenny2
    • 9. November 2023 um 14:39
    Zitat von Mira_Belle

    Und woher stammt das Skript, eventuell gibt es da noch ein paar Informationen dazu,

    also zum Skript?

    Original source ist unbekannt, ich habe das Skript von einem anderen Studenten erhalten.

    Zitat von 2002Andreas

    Änderungen in der userContent.css per Rechtsklick hier zumindest nicht.

    Die rechte Schaltfläche prüfe ich auf CSS für Firefox View Next, es funktioniert, userContent.css wird neu geladen. Es ist durchaus möglich, dass etwas im Skript korrigiert werden muss, aber ich weiß es nicht.

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

    • lenny2
    • 9. November 2023 um 08:57

    Die Dateien reload_userChrome.uc.js (das ist nur die Grafik Schaltfläche) und reload_userChrome.txt (Funktionalität) müssen sich im selben Ordner befinden, die Dateinamen können unterschiedlich sein, aber der Name der txt-Datei muss im Skriptcode angegeben werden. reload_userChrome.txt ist der alte Code für die Erweiterung Custom Buttons. Die Linksklick- und Rechtsklick-Funktionen funktionieren, die Rechtsklick-Funktion kann in reload_userChrome.txt deaktiviert werden.

    Sicherlich können fortgeschrittene Experten dies verbessern.

    Code
    // reload_userChrome.uc.js
    // Applying changes to userChrome.css and userContent.css styles without restarting Firefox
    // The file reload_userChrome.txt should be in the same folder with the script
    
    window.__SSi == "window0" && CustomizableUI.createWidget({
    id: "Reload_userChrome",
    label: "Reload userChrome",
    localized: false,
    onCreated(btn) {
    var u = Services.io.newURI;
    var code = Cu.readUTF8URI(u(
    u(Components.stack.filename).resolve("reload_userChrome.txt")
    )).replace(
    'Components.utils.import("resource://gre/modules/Services.jsm", {})',
    "Cu.getGlobalForObject(Cu)"
    );
    var del = function() {
    this.previousSibling.remove();
    this.remove();
    };
    (this.onCreated = btn => {
    btn.setAttribute("image", "data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABPElEQVQ4ja3TsU6UQRQF4G8D7jaS2EqhwMaYSGHnI1BQ+ATaUtqR0BJIDGjhMxhKKgLxEQStDFYmGpTKqC8grMdiZ80w4d/KSW5xM/ece2fuOTQnDMOL8D78DL/CSdgJd0vN7XAeDmrgbHgZRiEdcRk2w2rJ//QmYBxhpfB9wR4+4AaW8RQL1f1S3f151WU7Y1D7tEHYbacSlqqxt1tgAd8PayVOW4KtkpyFfgfBu44/Gc3iUal73eP3dQTYxy3MXOV1IDwIG2GuA/z/T7gZnoWh8Cp8buJTWJ9CMPm3Q1OEc9wBHoRvpWZLAzqt1nWvg2BnsoGw0BKk+GBwDbBfgf9pppfxOrgqz6/GUv6IER7iiWImvMHjHpf1BKvFKBdTzDQqU8zUox0Va86X/E7xxtvwI3wvStwNi+3T/gL+gPNd4cyuEQAAAABJRU5ErkJggg==");
    btn.defaultContextId = "toolbar-context-menu";
    var win = btn.ownerGlobal;
    var wdp = new win.DOMParser();
    var parser = class {
    parseFromString(...args) {
    var doc = wdp.parseFromSafeString(...args);
    doc.documentElement.lastChild.appendChild = del;
    return doc;
    }
    }
    win.setTimeout(() => new win.Function("DOMParser", code).call(btn, parser), 50);
    })(btn);
    }
    });
    Alles anzeigen
    Code
    // reload_userChrome.txt
    // Applying changes to userChrome.css and userContent.css styles without restarting Firefox
    // Place in the same folder as the reload_userChrome.uc.js script
    // To deactivate the reload function of userContent.css, comment out lines 82-88, edit tooltiptext line 11
    
    
    var c = msg => Services.console.logStringMessage(String(msg)), i = obj => inspectObject(obj), n = node => inspectDOMNode(node);
    
    
    (obj => {
    this.onclick = obj.click.bind(obj);
    this.oncontextmenu = obj.contextmenu.bind(obj);
    this.tooltipText = "L: Reload userChrome.css\nR: Reload userContent.css";
    })({
    async click(e) {
    if (e.button == 1) return gShowPopup(self);
    if (e.button || !this.chromeSheet) return;
    await this.reload(this.chromeSheet);
    this.restyle(0);
    },
    re: /^(?:web.*|file|extension|privilegedabout)$/,
    get url() {
    delete this.url;
    return this.url = `chrome://extensions/content/dummy.x${
    parseInt(Services.appinfo.platformVersion) >= 74 ? "htm" : "u"
    }l`;
    },
    async contextmenu(e) {
    if (e.ctrlKey || e.shiftKey || e.detail != 1 || !this.contentSheetURL) return;
    e.preventDefault();
    
    
    var count = Services.ppmm.childCount, one = count == 1;
    var data = await this.reloadTab(this.url, one ? false : {});
    if (one) this.reloadTab();
    else if (data) {
    var url = "data:," + encodeURIComponent(
    self.Help + this.contentSheetURL + '", ' + JSON.stringify(data) + ");"
    );
    for(var ind = 0; ind < count; ind++) {
    var child = Services.ppmm.getChildAt(ind);
    var rt = child.remoteType;
    rt && this.re.test(rt) && child.loadProcessScript(url, false);
    }
    }
    this.restyle(250);
    },
    async reload(sheet, obj) {
    try {var style = await (await fetch(sheet.href)).text();}
    catch (ex) {return obj;}
    InspectorUtils.parseStyleSheet(sheet, style);
    if (obj) obj[sheet.href] = style;
    for(var ind = 0, len = sheet.cssRules.length; ind < len; ind++) {
    var rule = sheet.cssRules.item(ind);
    
    
    rule.type == rule.IMPORT_RULE
    && rule.styleSheet.href.startsWith("file:///")
    && await this.reload(rule.styleSheet, obj);
    }
    return obj;
    },
    reloadTab(url, obj) {
    var tab = gBrowser.addTab(url, {skipAnimation: true, triggeringPrincipal: document.nodePrincipal});
    tab.style.setProperty("display", "none", "important");
    return new Promise(resolve => {
    var result, stop, destroy = () => {
    if (!stop) resolve(result), gBrowser.removeTab(tab), stop = true;
    }
    setTimeout(destroy, 500);
    try {
    tab.linkedBrowser.addEventListener("DOMContentLoaded", async e => {
    var sheet = this.getSheet(e.target, this.contentSheetURL);
    if (sheet) result = await this.reload(sheet, obj);
    destroy();
    }, {once: true});
    } catch(ex) {
    destroy();
    }
    });
    },
    getSheet(doc, href) {
    var sheets = InspectorUtils.getAllStyleSheets(doc);
    return sheets.find(sheet => sheet.href == href);
    },
    get contentSheetURL() {
    var file = Services.dirsvc.get("UChrm", Ci.nsIFile);
    file.append("userContent.css");
    if (!file.exists()) return null;
    delete this.contentSheetURL;
    return this.contentSheetURL = Services.io.newFileURI(file).spec;
    },
    get restyle() {
    var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
    var uri = Services.io.newURI("data:text/css,:root{}"), type = sss.USER_SHEET;
    delete this.restyle; return this.restyle = delay => setTimeout(() => {
    sss.loadAndRegisterSheet(uri, type);
    sss.unregisterSheet(uri, type);
    }, delay);
    },
    get chromeSheet() {
    var file = Services.dirsvc.get("UChrm", Ci.nsIFile);
    file.append("userChrome.css");
    if (!file.exists()) return null;
    
    
    var href = Services.io.newFileURI(file).spec;
    var sheet = this.getSheet(document, href);
    if (!sheet) return null;
    
    
    delete this.chromeSheet; return this.chromeSheet = sheet;
    }
    });
    Alles anzeigen

    Möglicherweise stimmen die Zeilennummern nach der Veröffentlichung des Codes nicht mit denen in den lokalen Dateien in Notepad++ überein :/

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

    • lenny2
    • 8. November 2023 um 07:06
    Zitat von Mira_Belle

    Heißt das, ich ändere Code z.B. in der userChrome.css brauche ich nur auf dem Button mit der linken Maustaste klicken,

    und die Änderungen werden ohne Neustart übernommen?

    Und ändere ich etwas an der userContent.css, dasselbe Prozedere mit rechts?

    Ja, das ist richtig, Änderungen an userChrome.css, den darin importierten .css-Dateien, userContent.css. Ohne Firefox neu zu starten. Es funktioniert wirklich.

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

    • lenny2
    • 7. November 2023 um 17:40
    Zitat von Mira_Belle

    Kannst noch kurz erklären, was der Sinn und Zweck dieses Skriptes ist?

    Bitte,

    Die Schaltfläche wird verwendet, um Änderungen an den Stilen userChrome.css (Links-klick) und userContent.css (Rechts-klick) zu aktivieren, ohne den Browser neu zu starten. Das Skript liest die Funktionalität aus der .txt-Datei in Zeile 8, die den Code für Custom Buttons.

  • Entwicklung Firefox

    • lenny2
    • 6. November 2023 um 08:18

    Es gibt einen Fehler in Firefox v120.0beta6, der Kontextmenüpunkt [Copy Link Without Site Tracking] ist auf allen Links vorhanden, nicht nur auf Links mit Tracking. In der Adressleiste ist es dasselbe.

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

    • lenny2
    • 5. November 2023 um 16:22

    Ich habe es selbst herausgefunden, fügen Sie nach Zeile 17 diesen Code ein

    Code
    btn.setAttribute("image", "data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABPElEQVQ4ja3TsU6UQRQF4G8D7jaS2EqhwMaYSGHnI1BQ+ATaUtqR0BJIDGjhMxhKKgLxEQStDFYmGpTKqC8grMdiZ80w4d/KSW5xM/ece2fuOTQnDMOL8D78DL/CSdgJd0vN7XAeDmrgbHgZRiEdcRk2w2rJ//QmYBxhpfB9wR4+4AaW8RQL1f1S3f151WU7Y1D7tEHYbacSlqqxt1tgAd8PayVOW4KtkpyFfgfBu44/Gc3iUal73eP3dQTYxy3MXOV1IDwIG2GuA/z/T7gZnoWh8Cp8buJTWJ9CMPm3Q1OEc9wBHoRvpWZLAzqt1nWvg2BnsoGw0BKk+GBwDbBfgf9pppfxOrgqz6/GUv6IER7iiWImvMHjHpf1BKvFKBdTzDQqU8zUox0Va86X/E7xxtvwI3wvStwNi+3T/gL+gPNd4cyuEQAAAABJRU5ErkJggg==");
  • userChrome.js Scripte für den Fuchs (Diskussion)

    • lenny2
    • 5. November 2023 um 09:57

    Hallo

    Diese Skript erstellt eine leere Schaltfläche namens Reload ohne Icon und ohne Funktionalität. Bitte fügen Sie den Code, um eine lokale oder Ressource-Symbol anzeigen, dann mein Wissen wird genug sein, um ein Symbol meiner Wahl zuweisen.

    Code
    window.__SSi == "window0" && CustomizableUI.createWidget({
    id: "Reload_userChrome",
    label: "Reload userChrome",
    localized: false,
    onCreated(btn) {
    var u = Services.io.newURI;
    var code = Cu.readUTF8URI(u(
    u(Components.stack.filename).resolve("reload_userChrome.txt")
    )).replace(
    'Components.utils.import("resource://gre/modules/Services.jsm", {})',
    "Cu.getGlobalForObject(Cu)"
    );
    var del = function() {
    this.previousSibling.remove();
    this.remove();
    };
    (this.onCreated = btn => {
    btn.defaultContextId = "toolbar-context-menu";
    var win = btn.ownerGlobal;
    var wdp = new win.DOMParser();
    var parser = class {
    parseFromString(...args) {
    var doc = wdp.parseFromSafeString(...args);
    doc.documentElement.lastChild.appendChild = del;
    return doc;
    }
    }
    win.setTimeout(() => new win.Function("DOMParser", code).call(btn, parser), 50);
    })(btn);
    }
    });
    Alles anzeigen

    Vielen Dank für Ihre Hilfe

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

    • lenny2
    • 3. November 2023 um 09:03
    Zitat von BrokenHeart

    Wie ich weiter oben schon geschrieben hatte, ist es notwendig, dass in Zeile 4 die ID des Original-Buttons eingetragen wird. Dann sollte man noch, falls vorhanden, 'Label' und 'Tooltip' auf die gleichen Werte setzen.

    :thumbup: Mit Hilfe Ihrer Anweisungen war es einfach, die Skriptschaltfläche extras_config_menu.uc.js beweglich zu machen, die vorher nicht beweglich war. Am Ende des Hauptcodes wurde zusätzlicher Code eingefügt.

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

    • lenny2
    • 2. November 2023 um 08:51
    Zitat von BrokenHeart

    Bitte wieder testen:

    Superb! :thumbup: Jetzt ist alles bestens. Vielen Dank für Ihre Hilfe und Ihre Zeit.

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

    • lenny2
    • 1. November 2023 um 18:50
    Zitat von BrokenHeart

    und jetzt?

    Geändert 8px zu 12px. Bitte beachten Sie die Hover, alle anderen Schaltflächen sind hintergrundbeleuchtet wie die auf der rechten Seite und die Schaltfläche unter Diskussion ist drastisch anders. Wenn die Schaltfläche auf der Navigationsleiste platziert ist, wenn schwebte, wird seine Hervorhebung nicht quadratisch wie alle anderen Schaltflächen, sondern rechteckig, wo die Höhe größer ist als die Breite.

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