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

Beiträge von milupo

  • Addons Manager Code anpassen

    • milupo
    • 26. Dezember 2021 um 17:27
    Zitat von Endor

    Ich brauche den sowieso nicht.

    Wie gesagt, es ist ein neuer Add-on-Typ. Es wird ihn also in Zukunft geben. Man kann den Eintrag natürlich per CSS ausblenden. Vielleicht erscheint er auch nur, wenn eine Erweiterung diesen Typs vorhanden ist, wie es bei den Sprachpaketen der Fall ist. Allerdings ist er im Moment da, obwohl es noch keine Erweiterung dafür gibt.


    Zitat von Dharkness

    Welche Erweiterung? Keine weiteren Infos und nur ein Link, das kannst Du besser.

    Ich habe inzwischen geschrieben, worum es sich handelt und sogar ein Zitat gebracht. Mehr weiß ich nicht. Das Thema stammt nicht von mir.

  • Addons Manager Code anpassen

    • milupo
    • 26. Dezember 2021 um 17:12
    Zitat von grisu2099

    Ah, OK. Dann wird dieser Eintrag bei mir auch in Zukunft fehlen...

    Nicht unbedingt. Die Erweiterung ist taufrisch und führt einen neuen Add-on-Typ ein:

    Zitat

    In the upcoming strings, you'll find a new type of add-on (like extension, theme, dictionary, language pack) called "Site permissions". This is an experimental new type of add-on, that can only enable specific APIs for a domain (e.g. allow mozilla.org to use the WebMIDI API).

    If you want to test the panel, you can install this add-on on a new profile. You need to download the XPI locally, and drag it on the Firefox window, but add-on signature needs to be disabled (see the beginning of the instructions for the MAC add-on if you're not familiar with the process).

    Zitat ist der Kommentar von Francesco Lodolo auf Pontoon für die Übersetzer.

  • Addons Manager Code anpassen

    • milupo
    • 26. Dezember 2021 um 17:07
    Zitat von FuchsFan

    Nö, habe ich nicht getan, und ist auch nicht installiert.

    Dann ist sie vielleicht schon durch. Ich habe den Eintrag auch, aber ich habe auch vor ein paar Tagen das XPI heruntergeladen. Hier auf Sorbisch und Fuchsfannisch: ;)

  • Addons Manager Code anpassen

    • milupo
    • 26. Dezember 2021 um 16:51
    Zitat von 2002Andreas

    Hier zumindest noch nicht vorhanden

    Man muss die Erweiterung von hier herunterladen und außerdem xpinstall.signatures.required in about:config auf false setzen, wer es noch nicht getan hat.

  • Addons Manager Code anpassen

    • milupo
    • 26. Dezember 2021 um 14:59

    Hauptsache nicht ersetzen, das könnte in die Hose gehen. ;)

  • Addons Manager Code anpassen

    • milupo
    • 26. Dezember 2021 um 14:31
    Zitat von Dharkness

    Da bin ich lange dran vorbei.

    Ich wollte bloß mal auf den Busch klopfen. :)

  • Addons Manager Code anpassen

    • milupo
    • 26. Dezember 2021 um 14:29
    Zitat von Dharkness

    Wieso, er braucht doch nur nach background und nötigenfalls nach color suchen.

    Das sagst du so in deinem jugendlichen Leichtsinn. :)

  • Addons Manager Code anpassen

    • milupo
    • 26. Dezember 2021 um 14:22
    Zitat von Dharkness

    Wenn Dir die grundsätzliche Darstellung zusagt, brauchst Du ja nur die Farben ändern.

    Da wird er nicht wissen wo.

  • Addons Manager Code anpassen

    • milupo
    • 25. Dezember 2021 um 19:45
    Zitat von Dharkness

    CSS-Voodoo

    Welches Geistwesen (Loa) bist du denn, was magst du für Opfergaben? :)

    Liste von Geistwesen im Voodoo – Wikipedia

  • Addons Manager Code anpassen

    • milupo
    • 25. Dezember 2021 um 15:49

    Zeilen 336 - 339: Muss es nicht about:preferences heißen? Und .pane-container scheint eine Klasse zu sein. Wo ist danach die öffnende geschweifte Klammer? Ist das alles zu about:preferences? Dann fehlt noch eine schließende geschweifte Klammer für die @-moz-document-Regel.

  • Frohe Weihnachten und einen guten Rutsch

    • milupo
    • 23. Dezember 2021 um 20:16

    Auch ich wünsche euch allen ein frohes und besinnliches Weihnachtsfest.

  • Script-Button verschiebbar machen

    • milupo
    • 23. Dezember 2021 um 20:15

    Habe im TB-Forum einen Beitrag geschrieben.

  • Extra Config Menü Icon überall verschiebbar machen?

    • milupo
    • 23. Dezember 2021 um 20:02

    Die Position ist mit warpmenuto festgelegt und wenn es bloß die einzige Zeile wäre, die man vielleicht in unserem Skript auskommentieren könnte, wäre es einfach. Aber warpmenuto taucht noch an anderen Stellen im Code auf, den man dort anpassen müsste.

  • Script-Button verschiebbar machen

    • milupo
    • 23. Dezember 2021 um 19:53
    Zitat von bege

    Wie sehen die bei dir aus? Ich habe das in TB nie hingekriegt und irgendwann den Hinweis bekommen, dass CustomizableUI.createWidget in TB nicht verfügbar sei.

    Ja, das stimmt.

    Ich habe gerade festgestellt, dass meine Skriptversionen etwas anderes aussehen, als die von edvoldis Liste. Er hat Versionen, wo die Position des jeweiligen Symbols nach einem bestimmten Element mit der ID buttons:addons festgelegt ist.

    Zitat von bege

    Vielleicht können wir das im TB-Forum weiterführen.

    Schreib mal im TB-Thread einen Beitrag:

    Diskussionsthread für Benutzerskripts - Thunderbird Mail DE
    TB 91.2.1Win 10 ProHallo,ich habe mal ein Benutzerskript zum Aufruf des Profilordners zusammengeschustert. (Quelltext, 25 Zeilen)Das Symbol ist hier im…
    www.thunderbird-mail.de
  • Extra Config Menü Icon überall verschiebbar machen?

    • milupo
    • 23. Dezember 2021 um 18:53
    Zitat von Endor

    Ja das wird durch das Script in das Menü der Schaltfläche verschoben.

    Das halte ich für unpraktisch. Das Menü der Entwicklerwerkzeuge kann ich mir da eher vorstellen.

    Wer weiß, warum das Skript nicht richtig funktioniert. Ich habe da allerdings eine Vermutung: An einigen Stellen werden Variablen mit $() aufgerufen, z. B. in den Zeilen 109 und 111. Das kenne ich nur von jQuery. Vielleicht liegt da der Hund begraben. Da müsste aborix helfen. Ich glaube, das muss er sowieso tun, wenn wir hier weiterkommen wollen. Er ist wie immer die letzte Rettung. :)

  • Extra Config Menü Icon überall verschiebbar machen?

    • milupo
    • 23. Dezember 2021 um 17:57

    Und bei mir ist das Menü Extras verschwunden.

  • Script-Button verschiebbar machen

    • milupo
    • 23. Dezember 2021 um 17:18
    Zitat von bananovic

    Aber die Scripts in Thunderbird lassen sich nicht verschieben.

    Die sollten sich auch verschieben lassen. Bei mir tun die beiden Skripte das, vorausgesetzt, du hast das Anpassen-Fenster geöffnet.

    Liste der Userscripts - ab Version 91+

  • Extra Config Menü Icon überall verschiebbar machen?

    • milupo
    • 23. Dezember 2021 um 17:05

    Ich habe das Skript mal schnell eingedeutscht:

    JavaScript
    // ==UserScript==
    // @name                ExtrasConfigMenuPlus.uc.js
    // @include             main
    // @charset             UTF-8
    // @note                extras_config_menu.uc.js Funktionsreduktion + α
    //  Klicken Sie mit der rechten Maustaste auf die Schaltfläche / @note, um neu zu starten, klicken Sie mit der mittleren Maustaste, um Folgendes zu öffnen: config
    // @note Der Code zum Aktivieren/Deaktivieren des Skripts wurde von alice0775s rebuild_userChrome.uc.xul übernommen.
    // @version 2.0.6 Es wurde ein Problem behoben, bei dem "Neustart" durch Rechtsklick auf eine Schaltfläche nicht funktionierte
    // @version 2.0.5 Fx72beta
    // Unterstützt @ Version 2.0.4 Fx65 oder höher
    // @version 2.0.3 Unterstützt Fx65 oder höher Die Erweiterung des Skriptdateinamens wurde in versteckt geändert.
    // @version 2.0.2 Unterstützt Fx57 oder höher Kontextmenüformat wurde abgeschafft, Schaltflächen können frei angeordnet werden
    // Das Problem wurde behoben, dass ein Neustart durch Rechtsklick auf das Symbol in @version 2.0.1 Fx47 oder höher nicht möglich war.
    // @version 2.0.0 Die Funktion wurde abgeschafft, um das Scratchpad zu einem Editor zu machen, behoben, dass es nach Fx44 nicht neu gestartet werden konnte
    // ==/UserScript==
    /*
    ■ Über die Bearbeiten & Öffnen-Funktion
    
    
    Verwenden Sie die Funktion 'Bearbeiten', um eine Datei zu bearbeiten
    Verwenden Sie die „Öffnen“-Funktion, um eine Datei oder einen Ordner zu öffnen
    Verwenden Sie die Funktion 'toggle', um zwischen falschen Werten umzuschalten
    
    
    Das erste Argument jeder Funktion gibt den Ordner als Basispunkt an
    0 = chrome
    1 = profile
    2 = C:\WINDOWS
    3 = C:\Programme oder C:\Programme (x86)
    4 = Beim Schreiben des vollständigen Pfads in das zweite Argument * Setzen Sie das Pfadtrennzeichen auf \\\\
    'C' = Laufwerk C
    'D' = D-Laufwerk
    
    
    Das zweite Argument gibt den Datei- oder Ordnernamen im Basisordner an, der im ersten Argument angegeben ist.
    Vergessen Sie nicht, es in [] einzuschließen und den Datei-(Ordner-)Namen in '' einzuschließen.
    
    
    ■ Beispiel für die Bearbeitung von prefs.js im Profilordner
    ECM.edit (1, ['prefs.js'])
    
    
    ■ Beispiel für das Öffnen eines Chrome-Ordners
    ECM.open (0)
    
    
    ■ Beispiel zum Starten von Firefox (Parameter des 3. Arguments kann weggelassen werden)
    ECM.open (3, ['Mozilla Firefox','firefox.exe'],'-no-remote')
    
    
    ■ Beispiel für das Umschalten zwischen gültig und ungültig von Javascript
    ECM.toggle ('javascript.enabled')
    
    
    */
    (function () {
    
    
    'use strict';
    
    
    const Preferences = Cu.import("resource://gre/modules/Preferences.jsm", {}).Preferences;
    
    
    window.ECM = {
    
    
    editor: 1,
    // 1 = Editor in view_source.editor.path eingestellt
    // Wenn Sie den vollständigen Pfad zum Editor schreiben, verwenden Sie diesen Editor * Schließen Sie den Pfad in'' ein und ersetzen Sie \ durch \\
    
    
    itemLength: null,
    
    
    init: function () {
    try {
    CustomizableUI.createWidget({
    id: 'ExtrasConfigMenu',
    type: 'custom',
    onBuild: function(aDocument) {
    var toolbaritem = aDocument.createXULElement('toolbarbutton');
    var attributes = {
    id: 'ExtrasConfigMenu',
    class: 'toolbarbutton-1 chromeclass-toolbar-additional',
    type: 'menu',
    label: 'Extras Config Menu',
    image: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACnElEQVR4Xm2RzYtbZRSHn/fr3pvJzTB3qiNM2k2pMBUGhEHaqsUqdeFGQalCobgREaFu/B/cqCtxVSjoQhBEQRBmIfWDKgNGJUPt0Nhah9JJ4iSd5E6+bu5972tAO4SS5/DjXZ1znsMrNiq1eikMQqYYJCmjxNH5+zdW777L0J5KKl9VPmnf+ut9KWkwhbheuzNcOVYOmGKc5iRO0r1ykeXCx0h7kt4fC3z5wfqbQnAJwQHa5S7jAZSRuJ0mkf81cheobhBXZa+ri1uptQjHAZoZCEC1PiPgDuwxCfwerBU7b73zXn//3usCcdt4HkZ7SGZg431U51NUCgwlO3cV/bVXhR/6p9ut+nP9QYeNn7/n8qUPZxvQ/Q6VVWHk4ZqWRvlJjpx9hcGfW2wO95N2q8m3618A2WwDt/0RplSAXsBed57eyossHl5GYdHacG3zGpADM06wjQ1UUIN+CLHPvfAxojPnKLiE+bDE1R9+5GatAmgPeGCAteQ7l5GBhGSyuROyd/gFouUyWkqEErR2mwXAAA8BRS0AgMQBjSra30ZkEeDzz9Dn4ZcvMO51SMcJcTdGChmA0ABA6cAgzyG3I8jLEBylV4fWoaeIc0V7t0Uv7pFbC+CA+28mp/8+SwXKnMVmz1O9HpE+eobMZdjcoY1GIHD/NwIdoH1fBaNguzlg88pVyoUi4vTbFI8eJxsNAIfSkrliESllH/L0v0jktNNomFGv1TFrL3Fo9QSMR3jaEEXzLC09gjaKp595No0WjyCEB4zRclICUMDxtRMce/wJ1MIi2SglXShhfI/cOjxPoZRmbq4gXzt/gVrtBrdvbiG+Wf+p/mvll1BpiVAGhCDPxuAUDotz4HKHlIJON6bRbL4hhPjcMx5mkn8BBLEUrsVZbq0AAAAASUVORK5CYII=',
    tooltiptext: 'Extras Config Menu',
    oncontextmenu: 'return false'
    };
    for (var a in attributes) {
    toolbaritem.setAttribute(a, attributes[a]);
    };
    return toolbaritem;
    },
    onCreated: function(toolbaritem) {
    }
    });
    } catch (e) {};
    setTimeout(() => ECM.init2(), 1000);
    this.addPrefListener(ECM.readLaterPrefListener);
    window.addEventListener('unload', this, false);
    },
    
    
    init2: function (btn) {
    var btn = document.getElementById('ExtrasConfigMenu');
    if (!btn)
    setTimeout(() => ECM.init2(), 1000);
    btn.addEventListener('click', (event) => ECM.onClick(event));
    var mp = btn.appendChild(this.createME('menupopup', 0, 0, 0, 'ecm-popup'));
    mp.setAttribute('onclick', 'event.preventDefault(); event.stopPropagation();');
    mp.addEventListener('popupshowing', (event) => ECM.onpopup(event));
    
    
    
    
    / * ==================== Von hier einstellen ==================== * /
    
    
    
    
    var devMenu = $ ('webDeveloperMenu');
    //Werkzeug
    mp.appendChild ($ ('tools-menu')) firstChild.className = "menu-text";
    // Entwicklungswerkzeuge
    mp.appendChild (devMenu);
    
    
    //Freier Speicher im Browser
    mp.appendChild(this.createME('menuitem', 'Purge Memory', () => {
    var os = Services.obs;
    var gMgr = Cc['@mozilla.org/memory-reporter-manager;1'].getService(Ci.nsIMemoryReporterManager);
    var parentWindow = Services.wm.getMostRecentWindow('navigator:browser');
    os.notifyObservers(null, 'child-gc-request', null);
    Cu.forceGC();
    os.notifyObservers(null, 'child-cc-request', null);
    parentWindow.windowUtils.cycleCollect();
    os.notifyObservers(null, 'child-mmu-request', null);
    gMgr.minimizeMemoryUsage(() => '');
    }));
    
    
    mp.appendChild(this.createME('menuitem', 'Schneller Aufgabenkiller', 'ECM.open(4, "D:\\\\Software\\\\empty\\\\empty.vbs")', 'ecm_vbs', 0));
    mp.appendChild(document.createXULElement('menuseparator'));
    
    
    //Neuer Passwort-Manager
    mp.appendChild(this.createME('menuitem', 'Passwortmanager', 'openTrustedLinkIn("about:logins", "tab");', 0, 0));
    
    
    mp.appendChild(document.createXULElement('menuseparator'));
    mp.appendChild(this.createME('menuitem', 'Javascript On/Off', 'ECM.toggle("javascript.enabled")', 'ecm_pref', 0));
    mp.appendChild(this.createME('menuitem', 'Standortinformationen On/Off', 'ECM.toggle("geo.enabled")', 'ecm_pref', 0));
    mp.appendChild(document.createXULElement('menuseparator'));
    mp.appendChild(this.createME('menuitem', 'userChrome.css', 'ECM.edit(0, ["userChrome.css"])', 'ecm_edit', 0));
    mp.appendChild(this.createME('menuitem', 'userContent.css', 'ECM.edit(0, ["userContent.css"])', 'ecm_edit', 0));
    mp.appendChild(document.createXULElement('menuseparator'));
    mp.appendChild(this.createME('menuitem', 'prefs.js', 'ECM.edit(1, ["prefs.js"])', 'ecm_js', 0));
    mp.appendChild(this.createME('menuitem', 'user.js', 'ECM.edit(1, ["user.js"])', 'ecm_js', 0));
    mp.appendChild(this.createME('menuitem', '_keychanger.js', 'ECM.edit(0, ["_keychanger.js"])', 'ecm_edit', 0));
    /*
    mp.appendChild(this.createME('menuitem', '_uAutoPagerize.js', 'ECM.edit(0, ["_uAutoPagerize.js"])', 'ecm_edit', 0));
    */
    mp.appendChild(document.createXULElement('menuseparator'));
    mp.appendChild(this.createME('menuitem', 'Chrome', 'ECM.open(0)', 'ecm_folder', 0));
    mp.appendChild(this.createME('menuitem', 'Profile', 'ECM.open(1)', 'ecm_folder', 0));
    /*
    mp.appendChild(this.createME('menuitem', 'SubScript', 'ECM.open(0, ["SubScript"])', 'ecm_folder', 0));
    mp.appendChild(this.createME('menuitem', 'CSS', 'ECM.open(0, ["CSS"])', 'ecm_folder', 0));
    mp.appendChild(this.createME('menuitem', 'UserScriptLoader', 'ECM.open(0, ["UserScriptLoader"])', 'ecm_folder', 0));
    mp.appendChild(this.createME('menuitem', 'Install Folder', 'ECM.open(3, ["Mozilla Firefox"])', 'ecm_folder', 0));
    */
    mp.appendChild(document.createXULElement('menuseparator'));
    mp.appendChild($('aboutName').cloneNode(false));
    
    
    
    
    /* ==================== END ==================== */
    
    
    
    
    this.itemLength = mp.childNodes.length;
    },
    
    
    handleEvent: function (event) {
    if (event.type === 'unload') {
    this.removePrefListener(ECM.readLaterPrefListener);
    this.itemLength = null;
    }
    },
    
    
    onClick: function (event) {
    if (event.button === 1) {
    gBrowser.selectedTab = gBrowser.addTrustedTab("about:config");
    } else if (event.button === 2) {
    event.preventDefault();
    Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit);
    }
    },
    
    
    edit: function (key, pathArray) {
    var path = this.getPath(key, pathArray);
    if (this.editor === 1) {
    this.launch(Services.prefs.getCharPref('view_source.editor.path'), path);
    } else {
    this.launch(this.editor, path);
    }
    },
    
    
    open: function (key, pathArray, arg) {
    var path = this.getPath(key, pathArray);
    this.launch(path, arg);
    },
    
    
    launch: function (path, arg) {
    arg = [arg] || [];
    
    
    var file = this.getFile(path);
    if (!file.exists()) {
    return;
    }
    
    
    if (!file.isDirectory()) {
    var process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess);
    process.init(file);
    process.run(false, arg, arg.length);
    } else {
    file.reveal();
    }
    },
    
    
    getFile: function (path) {
    var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
    file.initWithPath(path);
    return file;
    },
    
    
    getDir: function (key, pathArray) {
    var dir;
    if (key.indexOf('\\') !== -1) {
    dir = this.getFile(key);
    } else {
    dir = Services.dirsvc.get(key, Ci.nsIFile);
    }
    if (pathArray != null) {
    for (var i = 0, len = pathArray.length; i < len; ++i) {
    dir.append(pathArray[i]);
    }
    }
    return dir.path;
    },
    
    
    getPath: function (key, pathArray) {
    pathArray = pathArray || [];
    var path = '';
    switch (key) {
    case 0:
    path = this.getDir('UChrm', pathArray);
    break;
    case 1:
    path = this.getDir('ProfD', pathArray);
    break;
    case 2:
    path = this.getDir('WinD', pathArray);
    break;
    case 3:
    path = this.getDir('ProgF', pathArray);
    break;
    case 4:
    path = pathArray;
    break;
    case 'C':
    path = this.getDir('C:\\', pathArray);
    break;
    case 'D':
    path = this.getDir('D:\\', pathArray);
    break;
    }
    return path;
    },
    
    
    toggle: function (prefName) {
    var pref = this.getPref(prefName);
    var prefType = Services.prefs.getPrefType(prefName);
    if (prefType === Ci.nsIPrefBranch.PREF_BOOL) {
    this.setPref(prefName, !pref);
    }
    },
    
    
    createME: function (sTyp, sLabel, sCommand, sClass, sId) {
    var ele = document.createXULElement(sTyp);
    switch (sTyp) {
    case 'menuitem':
    ele.setAttribute('label', sLabel);
    ele.setAttribute('class', 'menuitem-iconic');
    if (typeof sCommand === 'function') {
    ele.setAttribute('oncommand', '(' + sCommand.toSource() + ').call(this, event);');
    } else {
    ele.setAttribute('oncommand', sCommand);
    }
    if (sClass) ele.classList.add(sClass);
    break;
    case 'menu':
    ele.setAttribute('label', sLabel);
    ele.setAttribute('id', sId);
    break;
    case 'menupopup':
    ele.setAttribute('id', sId);
    break;
    }
    return ele;
    },
    
    
    onpopup: function (event) {
    var mp = event.target;
    if (mp !== event.currentTarget) {
    return;
    }
    
    
    for (let i = this.itemLength, len = mp.childNodes.length; i < len; i++) {
    mp.removeChild(mp.lastChild);
    }
    
    
    var sep = document.createXULElement('menuseparator');
    mp.appendChild(sep);
    
    
    var scripts = userChrome_js.scripts.concat(userChrome_js.overlays);
    for (let j = 0, lenj = userChrome_js.arrSubdir.length; j < lenj; j++) {
    var dirName = (userChrome_js.arrSubdir[j] == '') ? 'root' : userChrome_js.arrSubdir[j];
    var flg = false;
    for (var i = 0, len = scripts.length; i < len; i++) {
    var script = scripts[i];
    if (script.dir !== dirName) continue;
    flg = true;
    break;
    }
    
    
    if (!flg) continue;
    
    
    var menu = mp.appendChild(document.createXULElement('menu'));
    menu.setAttribute('label', 'chrome/' + (dirName == 'root' ? '' : dirName));
    menu.dirName = dirName;
    
    
    var mp = menu.appendChild(document.createXULElement('menupopup'));
    mp.setAttribute('onpopupshowing', 'event.stopPropagation();');
    
    
    var flg = false;
    for (let i = 0, len = scripts.length; i < len; i++) {
    var script = scripts[i];
    var type = script.filename.lastIndexOf('uc.js') !== -1;
    if (script.dir != dirName) continue;
    if (flg && type !== flg) {
    var sep = document.createXULElement('menuseparator');
    mp.appendChild(sep);
    }
    flg = type;
    var mi = mp.appendChild(document.createXULElement('menuitem'));
    mi.setAttribute('label', script.filename.replace(/\.uc\.js$|\.uc\.xul$/g, ''));
    mi.setAttribute('oncommand', 'ECM.chgScriptStat(script.filename);');
    mi.setAttribute('onclick', 'if (event.button !== 0) { event.preventDefault(); event.stopPropagation(); ECM.clickScriptMenu(event); }');
    mi.setAttribute('closemenu', 'none');
    mi.setAttribute('type', 'checkbox');
    mi.setAttribute('checked', !userChrome_js.scriptDisable[script.filename]);
    if (script.description)
    mi.setAttribute('tooltiptext', script.description);
    mi.script = script;
    }
    mp = event.target;
    }
    },
    
    
    clickScriptMenu: function (event) {
    var target = event.target;
    var script = target.script;
    var fileURL = Services.io.getProtocolHandler('file').QueryInterface(Ci.nsIFileProtocolHandler).getFileFromURLSpec(script.url);
    if (event.button === 1) {
    this.chgScriptStat(script.filename);
    target.setAttribute('checked', !userChrome_js.scriptDisable[script.filename]);
    } else if (event.button === 2) {
    this.edit(4, fileURL.path);
    }
    },
    
    
    chgScriptStat: function (afilename) {
    var s = this.getPref('userChrome.disable.script');
    if (!userChrome_js.scriptDisable[afilename]) {
    s = (s + ',').replace(afilename + ',', '') + afilename + ',';
    } else {
    s = (s + ',').replace(afilename + ',', '');
    }
    s = s.replace(/,,/g, ',').replace(/^,/, '');
    this.setPref('userChrome.disable.script', s);
    userChrome_js.scriptDisable = this.restoreState(s.split(','));
    },
    
    
    restoreState: function (arr) {
    var disable = [];
    for (var i = 0, len = arr.length; i < len; i++) {
    disable[arr[i]] = true;
    }
    return disable;
    },
    
    
    getPref: function (prefName) {
    return Preferences.get(prefName);
    },
    
    
    setPref: function (prefName, value) {
    Preferences.set(prefName, value);
    },
    
    
    addPrefListener: function (aObserver) {
    Services.prefs.addObserver(aObserver.domain, aObserver, false);
    },
    
    
    removePrefListener: function (aObserver) {
    Services.prefs.removeObserver(aObserver.domain, aObserver);
    },
    
    
    readLaterPrefListener: {
    domain: 'userChrome.disable',
    observe: function (aSubject, aTopic, aPrefstring) {
    if (aTopic === 'nsPref:changed') {
    setTimeout(() => {
    var s = ECM.getPref('userChrome.disable.script');
    userChrome_js.scriptDisable = ECM.restoreState(s.split(','));
    }, 0);
    }
    }
    }
    };
    window.ECM.init();
    
    
    function $(id) {
    var ele = {};
    if (ele[id] == null) {
    ele[id] = document.getElementById(id);
    }
    return ele[id];
    }
    
    
    }());
    Alles anzeigen
  • Entladene Tabs werden nach Neustart nicht korrekt geladen

    • milupo
    • 22. Dezember 2021 um 22:27
    Zitat von testerer

    Gerade mal getestet: Ändert leider nichts an dem Verhalten. Einige Tabs sind immer noch leer und es wird auch kein Favicon angezeigt, nur die Seitenbezeichnung im Tab in der Tableiste ist zu sehen, also genau wie vorher.

    Immer auch bei jeder Änderung dran gedacht, beim Neustart von Firefox den Skript-Cache zu leeren?

  • External-Aplication.uc.js als vertikale Buttonbar links unter TabsToolbar möglich?

    • milupo
    • 20. Dezember 2021 um 21:16
    Zitat von harff182

    Da kann ich mit margin einstellen, was ich will, eine absolute Ausrichtung zum Objekt scheint für Tooltips per CSS nicht möglich.

    Du kannst mit den Eingeschaften im CSS-Kasten auf folgender Seite experimentieren:

    CSS Profi-Tip: Tooltip mit purem CSS und data-Attributen erstellen - Pixelbar GmbH Eupen - Webdesign - Digitale Medien - Webentwicklung
    pixelbar.be

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