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

Beiträge von aborix

  • ShadowRoot: userChrome.css aus einem JavaScript heraus starten

    • aborix
    • 14. Juni 2021 um 03:28

    BrokenHeart :

    zum Laden einer Datei in einem Skript:

    JavaScript
    //    Script01.uc.js
    
    (async function() {
    
      ...
            
              let path = OS.Path.join(OS.Constants.Path.profileDir, 'chrome', 'Test.css');
              let cssIn = await IOUtils.readUTF8(path);
    
      ...
    Zitat von BrokenHeart

    ( aborix und Sören Hentzschel würde es wahrscheinlich nur ein 'Fingerschnipser' kosten... ;) )

    Was mich betrifft, ich musste schon einiges recherchieren und testen: ;)

    Path manipulation

    IOUtils

  • Der Glückwunsch-Thread

    • aborix
    • 14. Juni 2021 um 01:59

    Alles Gute!

  • Script 'stiehlt' Fokus in neuem privatem Fenster

    • aborix
    • 10. Juni 2021 um 01:05

    Hallo,

    die Ursache weiß ich nicht, aber ich habe einen Workaround:

    Nach Zeile 168:

    JavaScript
        } catch(e){}

    füge diese Zeile ein:

    JavaScript
        document.getElementById('urlbar-input').focus();
  • Script Speichern in für Fx 78 wieder anpassen

    • aborix
    • 7. Juni 2021 um 08:14
    Zitat von bege

    Versteht Fx eine Datei, die nach dem Download direkt in einem externen Programm geöffnet wird, als temporäre Datei und löscht sie "pflichtgemäß"?

    Kannst du das auch mit anderen Dateitypen testen? Ob es sich durch eine Änderung im Skript verhindern lässt, weiß ich noch nicht; ich forsche noch nach. Es ist vielleicht hilfreich, die Frage auch im Mozillazine Forum zu stellen; dort gibt es einige Mitglieder, die verstehen mehr davon als ich.

  • Mozilla veröffentlicht Firefox 89 mit neuem Proton-Design

    • aborix
    • 6. Juni 2021 um 09:33

    Es gibt Erweiterungen dafür:

    https://addons.mozilla.org/de/firefox/search/?q=to+top

    Einen Kontextmenü-Eintrag haben laut den Beschreibungen

    Back To Top for Firefox (WE) und Scroll To Top.

  • Wo ist eigentlich die Option für Screenshot hingekommen?

    • aborix
    • 6. Juni 2021 um 09:15

    Den Button dafür gibt es nach wie vor. Man muss ihn im Anpassen-Modus in eine Symbolleiste ziehen.

  • TranslateGoogles.uc.js

    • aborix
    • 6. Juni 2021 um 08:19

    Hallo,

    kommentiere folgende Zeile aus und teste.

    JavaScript
        menuitem.classList.add('menuitem-iconic');
  • Firefox öffnet Tabs nicht im Vordergrund

    • aborix
    • 10. Mai 2021 um 00:55

    Hallo,

    wie ist es im Fehlerbehebungsmodus ?

  • Seit Update auf FF88 fehlt Menüpunkt "Grafik anzeigen"

    • aborix
    • 22. April 2021 um 21:18

    Ja. Verwende entweder nur das Skript oder nur die Erweiterung.

  • In memoriam

    • aborix
    • 21. April 2021 um 21:55

    Wieder ein Musiker:

    Jim Steinman ist gestorben. Er schrieb wuchtige und aufwendige Stücke für u.a. Meat Loaf und Bonnie Tyler.

  • Seit Update auf FF88 fehlt Menüpunkt "Grafik anzeigen"

    • aborix
    • 21. April 2021 um 21:17

    Ein Skript dafür:

    JavaScript
    (function() {
    
      if (!window.gBrowser)
        return;
    
      function viewMedia(event) {
        let where = whereToOpenLink(event, false, false);
        let referrerInfo = gContextMenu.contentData.referrerInfo;
        let systemPrincipal = Services.scriptSecurityManager.getSystemPrincipal();
        if (gContextMenu.onCanvas) {
          gContextMenu._canvasToBlobURL(gContextMenu.targetIdentifier).then(function(blobURL) {
            openUILinkIn(blobURL, where, {
              referrerInfo,
              triggeringPrincipal: systemPrincipal,
            });
          }, Cu.reportError);
        } else {
          urlSecurityCheck(
            gContextMenu.mediaURL,
            gContextMenu.principal,
            Ci.nsIScriptSecurityManager.DISALLOW_SCRIPT
          );
          openUILinkIn(gContextMenu.mediaURL, where, {
            referrerInfo,
            forceAllowDataURI: true,
            triggeringPrincipal: gContextMenu.principal,
            csp: gContextMenu.csp,
          });
        }
      }
    
      let item = document.getElementById('context-viewimage');
      item.setAttribute('oncommand', '(' + viewMedia.toString() + ')(event);');
      item.label = 'Grafik anzeigen';
    
    })();
    Alles anzeigen
  • .uc.js funktioniert nicht bei neuinstalliertem Firefox (2021)

    • aborix
    • 18. April 2021 um 10:47

    Seitdem Firefox mehrere Prozesse hat, wird der Tab allerdings auch bei Mittelklick auf einen Link geschlossen.

  • Netzwerkanalyse automatisch geöffnet in jedem neuen Fenster/Tab

    • aborix
    • 11. April 2021 um 20:56

    :)

  • Netzwerkanalyse automatisch geöffnet in jedem neuen Fenster/Tab

    • aborix
    • 9. April 2021 um 22:31

    Es ist mir bis jetzt nicht gelungen, beim Öffnen eines Tabs im Hintergrund auch gleich die Netzwerkanalyse zu öffnen. Mit folgendem Skript wird der neue Tab kurz in den Vordergrund geholt, die Netzwerkanalyse geöffnet, und dann wieder der alte Tab in den Vordergrund geholt.

    JavaScript
    (function() {
    
      if (!window.gBrowser)
        return;
    
      const pref = 'ucjs.openNetmonitor';
    
      if (window.__SSi == 'window0') {
    
        if (!Services.prefs.prefHasUserValue(pref)) {
          Services.prefs.setBoolPref(pref, false);
        };
    
        CustomizableUI.createWidget({
          id: 'open-netmonitor-button',
          type: 'custom',
          defaultArea: CustomizableUI.AREA_NAVBAR,
          onBuild: function(aDocument) {
            let toolbaritem = aDocument.createXULElement('toolbarbutton');
            let attributes = {
              id: 'open-netmonitor-button',
              class: 'toolbarbutton-1 chromeclass-toolbar-additional',
              label: 'Netzwerkanalyse',
              tooltiptext: 'Netzwerkanalyse',
              oncommand: 'Services.prefs.setBoolPref("ucjs.openNetmonitor", \
                          !Services.prefs.getBoolPref("ucjs.openNetmonitor"))',
              on: Services.prefs.getBoolPref(pref)
            };
            for (let a in attributes) {
              toolbaritem.setAttribute(a, attributes[a]);
            };
            return toolbaritem;
          }
        });
    
        let css = '\
          @-moz-document url("chrome://browser/content/browser.xhtml") { \
            #open-netmonitor-button[on="true"] { \
              list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAQCAYAAAAI0W+oAAACAklEQVR4AWMYmcBirgUjEPNCMTcQ88HY1LRE0HW5azMQX3db7nbLZZnLVedlzh+B+DEQ33Jc6pgPVMNFqSVsdovtlnqt8fp04suJ/yDsvsr9R+jm0H8gdunp0n+2C22/WUy3yAQqZyRkmB4eHAm06D3I0NVfVv9f9mXZf4/VHt+TDyT/A/FXfVn1v/h08Q+7hXbnDToMrPGZxcLGznYclyP+///PJCEqwXDp9yUGZlZmhj+//4DEGH79/cXwCQhBQFZGlv3mk5sKHFwc6xgZ8Xiq6WHTf3y4+0X3/4nvJ4Jx7+ve/66rXL9H7on8B+QjixPEDGln076nncGN86/m/2l53fIfhBufNf53XuX8PXhX8D9kseyL2b9AavFhBrtldhts5ttswoat5lvtt15k/T3rZtb/0mel/4seFf13XOn43W+n3z8QH4TjTsf9t5xv+cNynuUdIL6FC8NCUBAbVopXUrNcZPnAb7/fn5T7Kf+T7yb/t1tu991ju8e/1Iep/5PvJP93Wuv0w3Ku5XoRSxEVUWtRBVyYYBK3XGgZY7XY6p3DOoePDhsc3lkusPxptczqr+NGx3cOax0+AOWfqOWo2UEdx4gHEy4V9Nr09Az7DDOBuNCw1zDXZJrJdCBdZNBlkKAYp2gMVCYGxKwMVAIsQMwJxFxQzAelOYCYmWHEAQBYCXtUy+zB6gAAAABJRU5ErkJggg==) \
            } \
            #open-netmonitor-button[on="false"] { \
              list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAQCAYAAAAI0W+oAAACgElEQVR4AeWTb0gTYRzHn/1tLqRkriALwt4PRCAk6J2wqWCM3cl2hzungBJqCiHhKwmgsVcBYQRmgo4CiFNTp7OMKDMJ9irCpRKlW4BeOYZ3293u6ffYBscxsHrrFz5wPL/P737Pj9tM6MSE9/kMQGWR0//nHD+kapHj7gKfFzs6krFg8NOs339V7y2FQt2x9vavwHcgOc+y/dBr/9sh1rlAYOplV1cGJxKYEA+FpEmv9xaULVp3MRjk3/b1KcTZiERUuMzhU6+3B0qGci926fDDoJ9HQ5aXsRqL4eXOTnHO78clwLEhCGzBJ4aH88TD8TjeCIclGJZ46PFc07/XbLVa3yNNMMZGh9OJ5O1tZDaZkKIo5AxlJSkqiOI7SVEOwmtrTlB3oIBUWUY4m0UkF2pqTqW2ti5fsdmeGw26pfZHR7Ge7Pg4zk9NHXE4MYHjHCc+aW0dAP0sYAf+bMQw/MfBwTx4Wr8sZiGdlsiNtbFVVFiqHQ4TgiiFAkKqiopOHjjUumQjBTYquft7ezIEmnSJBQL8NE3PlOApauVFW5uYGhnBmUgEC+EwXmLZ8t8Iej90d+eJR9gYGsLTFCVBfRNIajG7o9Eb0FOFirlZX+9019Yu/UinL16qrjaRTTBsJOVya1Kh8EVW1d17q6vnQf1GzslGciaDFHjeTaVyKsYL99fXbxuNRgUdl1mKYudoWlhhmIPXDCPMUFRurLm5F0oO4AxQCRjmafrZAk2Lb1hWeMUwv6Bv505Dw/XixQ06yv/jHzQ2uh43NfUAA2MeTy/ncrmOfgiaTPt8dZMtLf3EeeR2cz11dfVwfA6woH+MGagA7EVMZRyLpm4rOicgvwHOip5P4wfdQAAAAABJRU5ErkJggg==) \
            } \
          }';
    
        let cssUri = Services.io.newURI('data:text/css,' + encodeURIComponent(css), null, null);
        let SSS = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
        SSS.loadAndRegisterSheet(cssUri, SSS.AGENT_SHEET);
    
      };
    
      const { gDevToolsBrowser } = ChromeUtils.import('resource://devtools/shared/Loader.jsm')
        .require('resource://devtools/client/framework/devtools-browser');
    
      function onTabOpen(event) {
        let selected = false;
        function onTabSelect() {
          gBrowser.tabContainer.removeEventListener('TabSelect', onTabSelect, true);
          gDevToolsBrowser.selectToolCommand(window, 'netmonitor', Cu.now());
          selected = true;
        };
        gBrowser.tabContainer.addEventListener('TabSelect', onTabSelect, true);
        setTimeout(() => {
          gBrowser.tabContainer.removeEventListener('TabSelect', onTabSelect, true);
          if (!selected) {
            let oldTab = gBrowser.selectedTab;
            gBrowser.selectedTab = event.target;
            gDevToolsBrowser.selectToolCommand(window, 'netmonitor', Cu.now())
              .then(() => {
                //setTimeout(() => {
                  gBrowser.selectedTab = oldTab;
                //}, 50);
              });
          }
        }, 0);
      }
    
      if (Services.prefs.getBoolPref(pref)) {
        setTimeout(() => {
          gDevToolsBrowser.selectToolCommand(window, 'netmonitor', Cu.now());
        }, 1000);
        gBrowser.tabContainer.addEventListener('TabOpen', onTabOpen, true);
      };
    
      let prefChange = {
        observe: function() {
          let prefVal = Services.prefs.getBoolPref(pref);
          document.getElementById('open-netmonitor-button').setAttribute('on', prefVal);
          if (prefVal) {
            gBrowser.tabContainer.addEventListener('TabOpen', onTabOpen, true);
          } else {
            gBrowser.tabContainer.removeEventListener('TabOpen', onTabOpen, true);
          };
        }
      };
    
      Services.prefs.addObserver(pref, prefChange, false);
    
      window.addEventListener('unload', function() {
        Services.prefs.removeObserver(pref, prefChange);
      });
    
    })();
    Alles anzeigen
  • Netzwerkanalyse automatisch geöffnet in jedem neuen Fenster/Tab

    • aborix
    • 8. April 2021 um 21:50

    Ich werde schauen, ob sich das Aufzeichnen auch dann machen lässt, wenn der Tab im Hintergrund ist.

    Nach dem Öffnen eines Fensters muss kurz gewartet werden, bis die Netzwerkanalyse geöffnet werden kann; es sind 1000 ms, das steht im Skript aus #15 in Zeile 66, im Skript aus #17 in Zeile 95. Ebenso beim Öffnen eines Tabs, hier sind es 100 ms, das steht in Z. 60 bzw. Z. 89. Vielleicht kommst du auch mit weniger aus.

  • Netzwerkanalyse automatisch geöffnet in jedem neuen Fenster/Tab

    • aborix
    • 8. April 2021 um 08:11

    Teste wieder:

    JavaScript
    (function() {
    
      if (!window.gBrowser)
        return;
    
      const pref = 'ucjs.openNetmonitor';
    
      if (window.__SSi == 'window0') {
    
        if (!Services.prefs.prefHasUserValue(pref)) {
          Services.prefs.setBoolPref(pref, false);
        };
    
        CustomizableUI.createWidget({
          id: 'open-netmonitor-button',
          type: 'custom',
          defaultArea: CustomizableUI.AREA_NAVBAR,
          onBuild: function(aDocument) {
            let toolbaritem = aDocument.createXULElement('toolbarbutton');
            let attributes = {
              id: 'open-netmonitor-button',
              class: 'toolbarbutton-1 chromeclass-toolbar-additional',
              label: 'Netzwerkanalyse',
              tooltiptext: 'Netzwerkanalyse',
              oncommand: 'Services.prefs.setBoolPref("ucjs.openNetmonitor", \
                          !Services.prefs.getBoolPref("ucjs.openNetmonitor"))',
              on: Services.prefs.getBoolPref(pref)
            };
            for (let a in attributes) {
              toolbaritem.setAttribute(a, attributes[a]);
            };
            return toolbaritem;
          }
        });
    
        let css = '\
          @-moz-document url("chrome://browser/content/browser.xhtml") { \
            #open-netmonitor-button[on="true"] { \
              list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAQCAYAAAAI0W+oAAACAklEQVR4AWMYmcBirgUjEPNCMTcQ88HY1LRE0HW5azMQX3db7nbLZZnLVedlzh+B+DEQ33Jc6pgPVMNFqSVsdovtlnqt8fp04suJ/yDsvsr9R+jm0H8gdunp0n+2C22/WUy3yAQqZyRkmB4eHAm06D3I0NVfVv9f9mXZf4/VHt+TDyT/A/FXfVn1v/h08Q+7hXbnDToMrPGZxcLGznYclyP+///PJCEqwXDp9yUGZlZmhj+//4DEGH79/cXwCQhBQFZGlv3mk5sKHFwc6xgZ8Xiq6WHTf3y4+0X3/4nvJ4Jx7+ve/66rXL9H7on8B+QjixPEDGln076nncGN86/m/2l53fIfhBufNf53XuX8PXhX8D9kseyL2b9AavFhBrtldhts5ttswoat5lvtt15k/T3rZtb/0mel/4seFf13XOn43W+n3z8QH4TjTsf9t5xv+cNynuUdIL6FC8NCUBAbVopXUrNcZPnAb7/fn5T7Kf+T7yb/t1tu991ju8e/1Iep/5PvJP93Wuv0w3Ku5XoRSxEVUWtRBVyYYBK3XGgZY7XY6p3DOoePDhsc3lkusPxptczqr+NGx3cOax0+AOWfqOWo2UEdx4gHEy4V9Nr09Az7DDOBuNCw1zDXZJrJdCBdZNBlkKAYp2gMVCYGxKwMVAIsQMwJxFxQzAelOYCYmWHEAQBYCXtUy+zB6gAAAABJRU5ErkJggg==) \
            } \
            #open-netmonitor-button[on="false"] { \
              list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAQCAYAAAAI0W+oAAACgElEQVR4AeWTb0gTYRzHn/1tLqRkriALwt4PRCAk6J2wqWCM3cl2hzungBJqCiHhKwmgsVcBYQRmgo4CiFNTp7OMKDMJ9irCpRKlW4BeOYZ3293u6ffYBscxsHrrFz5wPL/P737Pj9tM6MSE9/kMQGWR0//nHD+kapHj7gKfFzs6krFg8NOs339V7y2FQt2x9vavwHcgOc+y/dBr/9sh1rlAYOplV1cGJxKYEA+FpEmv9xaULVp3MRjk3/b1KcTZiERUuMzhU6+3B0qGci926fDDoJ9HQ5aXsRqL4eXOTnHO78clwLEhCGzBJ4aH88TD8TjeCIclGJZ46PFc07/XbLVa3yNNMMZGh9OJ5O1tZDaZkKIo5AxlJSkqiOI7SVEOwmtrTlB3oIBUWUY4m0UkF2pqTqW2ti5fsdmeGw26pfZHR7Ge7Pg4zk9NHXE4MYHjHCc+aW0dAP0sYAf+bMQw/MfBwTx4Wr8sZiGdlsiNtbFVVFiqHQ4TgiiFAkKqiopOHjjUumQjBTYquft7ezIEmnSJBQL8NE3PlOApauVFW5uYGhnBmUgEC+EwXmLZ8t8Iej90d+eJR9gYGsLTFCVBfRNIajG7o9Eb0FOFirlZX+9019Yu/UinL16qrjaRTTBsJOVya1Kh8EVW1d17q6vnQf1GzslGciaDFHjeTaVyKsYL99fXbxuNRgUdl1mKYudoWlhhmIPXDCPMUFRurLm5F0oO4AxQCRjmafrZAk2Lb1hWeMUwv6Bv505Dw/XixQ06yv/jHzQ2uh43NfUAA2MeTy/ncrmOfgiaTPt8dZMtLf3EeeR2cz11dfVwfA6woH+MGagA7EVMZRyLpm4rOicgvwHOip5P4wfdQAAAAABJRU5ErkJggg==) \
            } \
          }';
    
        let cssUri = Services.io.newURI('data:text/css,' + encodeURIComponent(css), null, null);
        let SSS = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
        SSS.loadAndRegisterSheet(cssUri, SSS.AGENT_SHEET);
    
      };
    
      const { require } = ChromeUtils.import('resource://devtools/shared/Loader.jsm');
      const { gDevToolsBrowser } = require('devtools/client/framework/devtools-browser');
      const { gDevTools } = require('devtools/client/framework/devtools');
      const { TargetFactory } = require('devtools/client/framework/target');
      const { Toolbox } = require('devtools/client/framework/toolbox');
    
      gDevToolsBrowser.selectToolCommand = async function selectToolCommand(win, toolId, startTime) {
        if (gDevToolsBrowser._isAboutDevtoolsToolbox(win)) {
          const toolbox = gDevToolsBrowser._getAboutDevtoolsToolbox(win);
          toolbox.selectTool(toolId, "key_shortcut");
          return;
        }
        const target = await TargetFactory.forTab(win.gBrowser.selectedTab);
        const toolbox = gDevTools.getToolbox(target);
        const toolDefinition = gDevTools.getToolDefinition(toolId);
        if (toolbox && (toolbox.currentToolId == toolId || (toolId == "webconsole" && toolbox.splitConsole))) {
          toolbox.fireCustomKey(toolId);
          if (toolDefinition.preventClosingOnKey || toolbox.hostType == Toolbox.HostType.WINDOW) {
            if (!toolDefinition.preventRaisingOnKey) {
              toolbox.raise();
            }
          } else {
            //toolbox.destroy();
          }
          gDevTools.emit("select-tool-command", toolId);
        } else {
          gDevTools.showToolbox(target, toolId, null, null, startTime, undefined, !toolDefinition.preventRaisingOnKey)
            .then(newToolbox => {
              newToolbox.fireCustomKey(toolId);
              gDevTools.emit("select-tool-command", toolId);
            });
        }
      }
    
      function tabOpenNetmonitor(event) {
        setTimeout(() => {
          gDevToolsBrowser.selectToolCommand(window, 'netmonitor', Cu.now());
        }, 100);
      };
    
      if (Services.prefs.getBoolPref(pref)) {
        setTimeout(() => {
          gDevToolsBrowser.selectToolCommand(window, 'netmonitor', Cu.now());
        }, 1000);
        gBrowser.tabContainer.addEventListener('TabSelect', tabOpenNetmonitor, true);
      };
    
      let prefChange = {
        observe: function() {
          let prefVal = Services.prefs.getBoolPref(pref);
          document.getElementById('open-netmonitor-button').setAttribute('on', prefVal);
          if (prefVal) {
            gDevToolsBrowser.selectToolCommand(window, 'netmonitor', Cu.now());
            gBrowser.tabContainer.addEventListener('TabSelect', tabOpenNetmonitor, true);
          } else {
            gBrowser.tabContainer.removeEventListener('TabSelect', tabOpenNetmonitor, true);
          };
        }
      };
    
      Services.prefs.addObserver(pref, prefChange, false);
    
      window.addEventListener('unload', function() {
        Services.prefs.removeObserver(pref, prefChange);
      });
    
    })();
    Alles anzeigen
  • Netzwerkanalyse automatisch geöffnet in jedem neuen Fenster/Tab

    • aborix
    • 7. April 2021 um 14:39

    Teste mal:

    JavaScript
    (function() {
    
      if (!window.gBrowser)
        return;
    
      const pref = 'ucjs.openNetmonitor';
    
      if (window.__SSi == 'window0') {
    
        if (!Services.prefs.prefHasUserValue(pref)) {
          Services.prefs.setBoolPref(pref, false);
        };
    
        CustomizableUI.createWidget({
          id: 'open-netmonitor-button',
          type: 'custom',
          defaultArea: CustomizableUI.AREA_NAVBAR,
          onBuild: function(aDocument) {
            let toolbaritem = aDocument.createXULElement('toolbarbutton');
            let attributes = {
              id: 'open-netmonitor-button',
              class: 'toolbarbutton-1 chromeclass-toolbar-additional',
              label: 'Netzwerkanalyse',
              tooltiptext: 'Netzwerkanalyse',
              oncommand: 'Services.prefs.setBoolPref("ucjs.openNetmonitor", \
                          !Services.prefs.getBoolPref("ucjs.openNetmonitor"))',
              on: Services.prefs.getBoolPref(pref)
            };
            for (let a in attributes) {
              toolbaritem.setAttribute(a, attributes[a]);
            };
            return toolbaritem;
          }
        });
    
        let css = '\
          @-moz-document url("chrome://browser/content/browser.xhtml") { \
            #open-netmonitor-button[on="true"] { \
              list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAQCAYAAAAI0W+oAAACAklEQVR4AWMYmcBirgUjEPNCMTcQ88HY1LRE0HW5azMQX3db7nbLZZnLVedlzh+B+DEQ33Jc6pgPVMNFqSVsdovtlnqt8fp04suJ/yDsvsr9R+jm0H8gdunp0n+2C22/WUy3yAQqZyRkmB4eHAm06D3I0NVfVv9f9mXZf4/VHt+TDyT/A/FXfVn1v/h08Q+7hXbnDToMrPGZxcLGznYclyP+///PJCEqwXDp9yUGZlZmhj+//4DEGH79/cXwCQhBQFZGlv3mk5sKHFwc6xgZ8Xiq6WHTf3y4+0X3/4nvJ4Jx7+ve/66rXL9H7on8B+QjixPEDGln076nncGN86/m/2l53fIfhBufNf53XuX8PXhX8D9kseyL2b9AavFhBrtldhts5ttswoat5lvtt15k/T3rZtb/0mel/4seFf13XOn43W+n3z8QH4TjTsf9t5xv+cNynuUdIL6FC8NCUBAbVopXUrNcZPnAb7/fn5T7Kf+T7yb/t1tu991ju8e/1Iep/5PvJP93Wuv0w3Ku5XoRSxEVUWtRBVyYYBK3XGgZY7XY6p3DOoePDhsc3lkusPxptczqr+NGx3cOax0+AOWfqOWo2UEdx4gHEy4V9Nr09Az7DDOBuNCw1zDXZJrJdCBdZNBlkKAYp2gMVCYGxKwMVAIsQMwJxFxQzAelOYCYmWHEAQBYCXtUy+zB6gAAAABJRU5ErkJggg==) \
            } \
            #open-netmonitor-button[on="false"] { \
              list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAQCAYAAAAI0W+oAAACgElEQVR4AeWTb0gTYRzHn/1tLqRkriALwt4PRCAk6J2wqWCM3cl2hzungBJqCiHhKwmgsVcBYQRmgo4CiFNTp7OMKDMJ9irCpRKlW4BeOYZ3293u6ffYBscxsHrrFz5wPL/P737Pj9tM6MSE9/kMQGWR0//nHD+kapHj7gKfFzs6krFg8NOs339V7y2FQt2x9vavwHcgOc+y/dBr/9sh1rlAYOplV1cGJxKYEA+FpEmv9xaULVp3MRjk3/b1KcTZiERUuMzhU6+3B0qGci926fDDoJ9HQ5aXsRqL4eXOTnHO78clwLEhCGzBJ4aH88TD8TjeCIclGJZ46PFc07/XbLVa3yNNMMZGh9OJ5O1tZDaZkKIo5AxlJSkqiOI7SVEOwmtrTlB3oIBUWUY4m0UkF2pqTqW2ti5fsdmeGw26pfZHR7Ge7Pg4zk9NHXE4MYHjHCc+aW0dAP0sYAf+bMQw/MfBwTx4Wr8sZiGdlsiNtbFVVFiqHQ4TgiiFAkKqiopOHjjUumQjBTYquft7ezIEmnSJBQL8NE3PlOApauVFW5uYGhnBmUgEC+EwXmLZ8t8Iej90d+eJR9gYGsLTFCVBfRNIajG7o9Eb0FOFirlZX+9019Yu/UinL16qrjaRTTBsJOVya1Kh8EVW1d17q6vnQf1GzslGciaDFHjeTaVyKsYL99fXbxuNRgUdl1mKYudoWlhhmIPXDCPMUFRurLm5F0oO4AxQCRjmafrZAk2Lb1hWeMUwv6Bv505Dw/XixQ06yv/jHzQ2uh43NfUAA2MeTy/ncrmOfgiaTPt8dZMtLf3EeeR2cz11dfVwfA6woH+MGagA7EVMZRyLpm4rOicgvwHOip5P4wfdQAAAAABJRU5ErkJggg==) \
            } \
          }';
    
        let cssUri = Services.io.newURI('data:text/css,' + encodeURIComponent(css), null, null);
        let SSS = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
        SSS.loadAndRegisterSheet(cssUri, SSS.AGENT_SHEET);
    
      };
    
      const { gDevToolsBrowser } = ChromeUtils.import('resource://devtools/shared/Loader.jsm')
        .require('resource://devtools/client/framework/devtools-browser');
    
      function tabOpenNetmonitor(event) {
        setTimeout(() => {
          if (gBrowser.selectedTab == event.target) {
            gDevToolsBrowser.selectToolCommand(window, 'netmonitor', Cu.now());
          };
        }, 100);
      };
    
      if (Services.prefs.getBoolPref(pref)) {
        setTimeout(() => {
          gDevToolsBrowser.selectToolCommand(window, 'netmonitor', Cu.now());
        }, 1000);
        gBrowser.tabContainer.addEventListener('TabOpen', tabOpenNetmonitor, true);
      };
    
      let prefChange = {
        observe: function() {
          let prefVal = Services.prefs.getBoolPref(pref);
          document.getElementById('open-netmonitor-button').setAttribute('on', prefVal);
          if (prefVal) {
            gBrowser.tabContainer.addEventListener('TabOpen', tabOpenNetmonitor, true);
          } else {
            gBrowser.tabContainer.removeEventListener('TabOpen', tabOpenNetmonitor, true);
          };
        }
      };
    
      Services.prefs.addObserver(pref, prefChange, false);
    
      window.addEventListener('unload', function() {
        Services.prefs.removeObserver(pref, prefChange);
      });
    
    })();
    Alles anzeigen
  • Seit Firefox-Version 87.0 fehlt bei einem Bild/Foto im Rechtsklick-Kontextmenü der Eintrag "Grafik-Info anzeigen"

    • aborix
    • 4. April 2021 um 21:26

    Eine Erweiterung dafür wird gerade überprüft:

    View Image Info Reborn

  • Verzögerung für Webseitensuche einrichten [Strg-F]

    • aborix
    • 4. April 2021 um 09:08

    Hallo,

    teste folgendes Skript. In Zeile 6 steht die Dauer der Verzögerung.

    JavaScript
    (function() {
    
      if (!window.gBrowser)
        return;
    
      const wait = 500;
    
      gLazyFindCommand = async function gLazyFindCommand(cmd, ...args) {
        let fb = await gFindBarPromise;
        if (!fb || !fb[cmd])
          return;
        fb[cmd].apply(fb, args);
        if (gFindBar._find_Original)
          return;
        gFindBar._find_Original = gFindBar._find;
        gFindBar._find = function _find(value) {
          clearTimeout(gFindBar._wait);
          gFindBar._wait = setTimeout(() =>
            gFindBar._find_Original(value), wait
          );
        }
      }
    
    })();
    Alles anzeigen
  • Firefox 87 - RestartFirefoxButton.uc.js funktioniert nicht mehr ?

    • aborix
    • 28. März 2021 um 08:45

    Hallo,

    ersetze in den Zeilen 14, 30, 58 und 61

    BrowserUtils.restartApplication()

    durch

    Services.startup.quit(Services.startup.eRestart | Services.startup.eAttemptQuit)

    und teste.

Unterstütze uns!

Jährlich (2025)

67,1 %

67,1% (435,86 von 650 EUR)

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