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

  • [Script] [Nightly] Autopopup für Lesezeichenleiste funktioniert nicht mehr...

    • aborix
    • 19. Dezember 2020 um 08:06

    Die Listener werden jetzt registriert, sobald die Lesezeichen-Ordner vorhanden sind:

    JavaScript
    (function() {
    
      if (!window.gBrowser)
        return;
    
      let itemToClose = null;
      let timeoutEnter, timeoutLeave;
      let placesContext = document.getElementById('placesContext');
    
      placesContext.addEventListener('popuphidden', function() {
        if (itemToClose) {
          itemToClose.open = false;
          itemToClose = null;
        };
      });
    
      function onMouseenter(event) {
        clearTimeout(timeoutLeave);
        timeoutEnter = setTimeout(function() {
          itemToClose = null;
          if (placesContext._view && !placesContext._view._openedMenuButton) {
            placesContext.hidePopup();
          };
          event.target.open = true;
        }, 100);
      };
    
      function onMouseleave(event) {
        clearTimeout(timeoutEnter);
        timeoutLeave = setTimeout(function() {
          if (placesContext.state == 'closed') {
            event.target.open = false;
            itemToClose = null;
          } else {
            itemToClose = event.target;
          };
        }, 100);
      };
    
      function addListeners(items) {
        for (let item of items) {
          item.addEventListener('mouseenter', onMouseenter);
          item.addEventListener('mouseleave', onMouseleave);
        };
      };
    
      let observer = new MutationObserver(mutations => {
        for (let mutation of mutations) {
          let items = [];
          for (let node of mutation.addedNodes) {
            if (node.type == 'menu') {
              items.push(node);
            };
          };
          addListeners(items);
        };
      });
    
      addListeners(document.querySelectorAll('#PlacesToolbarItems > toolbarbutton[type="menu"]'));
    
      observer.observe(document.getElementById('PlacesToolbarItems'), {childList: true});
      setTimeout(() => observer.disconnect(), 5000);
    
      window.addEventListener('aftercustomization', () =>
        setTimeout(() =>
          addListeners(document.querySelectorAll('#PlacesToolbarItems > toolbarbutton[type="menu"]')),
          100
        )
      );
    
    })();
    Alles anzeigen
  • Im Lesezeichen-Menu Speichern

    • aborix
    • 3. Dezember 2020 um 21:28

    Hallo,

    teste bitte:

    JavaScript
    (function() {
    
      if (!window.gBrowser)
        return;
    
      PlacesCommandHook.bookmarkPage = async function bookmarkPage() {
        let browser = gBrowser.selectedBrowser;
        let url = new URL(browser.currentURI.spec);
        let info = await PlacesUtils.bookmarks.fetch({ url });
        let isNewBookmark = !info;
        let showEditUI = !isNewBookmark || StarUI.showForNewBookmarks;
        if (isNewBookmark) {
          let parentGuid = PlacesUtils.bookmarks.menuGuid;
          info = { url, parentGuid };
          let charset = null;
          let isErrorPage = false;
          if (browser.documentURI) {
            isErrorPage = /^about:(neterror|certerror|blocked)/.test(
              browser.documentURI.spec
            );
          }
          try {
            if (isErrorPage) {
              let entry = await PlacesUtils.history.fetch(browser.currentURI);
              if (entry) {
                info.title = entry.title;
              }
            } else {
              info.title = browser.contentTitle;
            }
            info.title = info.title || url.href;
            charset = browser.characterSet;
          } catch (e) {
            Cu.reportError(e);
          }
          if (showEditUI) {
            StarUI.beginBatch();
          }
          info.guid = await PlacesTransactions.NewBookmark(info).transact();
          if (charset) {
            PlacesUIUtils.setCharsetForPage(url, charset, window).catch(
              Cu.reportError
            );
          }
        }
        gURLBar.handleRevert();
        if (!showEditUI) {
          StarUI.showConfirmation();
          return;
        }
        let node = await PlacesUIUtils.promiseNodeLikeFromFetchInfo(info);
        await StarUI.showEditBookmarkPopup(node, isNewBookmark, url);
      };
    
    })();
    Alles anzeigen
  • Cursor soll bei FF71Standard-Startseite in googleleiste springen

    • aborix
    • 1. Dezember 2020 um 21:40

    Hallo Sabine,

    teste bitte:

    JavaScript
    (function() {
    
      if (!window.gBrowser)
        return;
    
      document.getElementById('home-button').setAttribute('onclick',
        'if (event.button == 0) openTrustedLinkIn("about:home", "current"); else BrowserHome(event);'
      );
    
      let frameScript = function() {
        addEventListener('pageshow', function(event) {
          let url = event.target.URL;
          if (url == 'about:newtab' || url == 'about:home') {
            content.setTimeout(function() {
              content.focus();
              content.document.getElementById('newtab-search-text').focus();
            }, 200);
          };
        });
      };
    
      let frameScriptURI = 'data:,(' + frameScript.toString() + ')()';
      window.messageManager.loadFrameScript(frameScriptURI, true);
    
      gBrowser.tabContainer.addEventListener('TabOpen', function(event) {
        setTimeout(function() {
          let browser = event.target.linkedBrowser;
          if (browser.currentURI.spec == 'about:newtab') {
            browser.messageManager.loadFrameScript(
              'data:, content.focus(); content.document.getElementById("newtab-search-text").focus();',
              true);
          };
        }, 200);
      });
    
    })();
    Alles anzeigen
  • Autoconfig über Server abrufen funktioniert nicht

    • aborix
    • 25. November 2020 um 22:07

    Hallo,

    hilft diese Beschreibung weiter:

    SUMO - AutoConfig - Zentrale Verwaltung

  • about:config?filter=

    • aborix
    • 24. November 2020 um 01:13

    Falls du noch an diesem Thema interessiert bist, ich habe diese Seite gefunden:

    http://forums.mozillazine.org/viewtopic.php?f=9&t=3065360

    Ich habe es getestet, es funktioniert.

  • LeerenTabNutzen - Ersatz für Eval möglich ?

    • aborix
    • 22. November 2020 um 22:21

    Es gibt bereits eine neue Version des Skripts:

    Neuen Tab mit nutzen #17

  • Alle Lesezeichen in neuem Fenster öffnen

    • aborix
    • 19. November 2020 um 09:57

    Hallo,

    teste dieses Skript:

    JavaScript
    (function() {
    
      if (!window.gBrowser)
        return;
    
      let openInWindow = document.createXULElement('menuitem');
      openInWindow.id = 'placesContext_openContainer:tabsnewwindow';
      openInWindow.label = 'Alle in neuem Fenster öffnen';
      openInWindow.setAttribute('oncommand',
        'PlacesUIUtils.getViewForNode(document.popupNode).controller.openSelectionInTabs({shiftKey: true})'
      );
      let openInTabs = document.getElementById('placesContext_openContainer:tabs');
      openInTabs.after(openInWindow);
    
      let placesContext = document.getElementById('placesContext');
      placesContext.addEventListener('popupshowing', () => {
        for (let attribute of ['hidden', 'disabled']) {
          if (openInTabs.getAttribute(attribute) == 'true') {
            openInWindow.setAttribute(attribute, 'true');
          } else {
            openInWindow.removeAttribute(attribute);
          }
        }
      });
    
    })();
    Alles anzeigen
  • (2 Fragen) Such Leiste unter die Lesezeichen Zeile verschieben .... und download Fenster

    • aborix
    • 14. November 2020 um 21:35

    Hallo,

    mach folgenden Test:

    Setze in about:config devtools.chrome.enabled auf true, dann rufe mit Strg+Umschalt+J die Browserkonsole auf, gib in die Eingabezeile unten folgenden Code ein und drücke die Enter-Taste. Die Suchleiste sollte dann unten sein.

    JavaScript
    extraBar = document.createXULElement('toolbar');
    extraBar.id = 'extra-toolbar';
    extraBar.setAttribute('customizable', 'true');
    extraBar.setAttribute('mode', 'icons');
    extraBar.setAttribute('context', 'toolbar-context-menu');
    bmBar = document.getElementById('PersonalToolbar');  
    bmBar.parentNode.insertBefore(extraBar, bmBar.nextSibling);
    CustomizableUI.registerArea('extra-toolbar', {legacy: true});
    CustomizableUI.registerToolbarNode(extraBar);
    CustomizableUI.addWidgetToArea('search-container', 'extra-toolbar', 0);
  • Tab Schließen Javascript

    • aborix
    • 6. November 2020 um 23:04

    Noch eine kleine Verbesserung: Klickdauer, Größe und Farbe kann man jetzt gleich am Anfang des Skripts festlegen:

    JavaScript
    (function() {
    
      if (location != 'chrome://browser/content/browser.xhtml')
        return;
    
      const clickTime = 500;
      const panelWidth = 18;
      const panelHeight = 18;
      const panelColor = 'tomato';
    
      try {
    
        const NSxul = 'http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul';
        const browser = document.getElementById('appcontent');
        var dTime, uTime, dX, dY, uX, uY;
    
        //Mausklick Zeit und die Koordinaten angeben
        browser.addEventListener('mousedown', function(event) {
          dTime = new Date().getTime();
          dX = event.screenX;
          dY = event.screenY;
        }, false);
    
        browser.addEventListener('mouseup', function(event) {
          uTime = new Date().getTime();
          uX = event.screenX;
          uY = event.screenY;
          if ((uTime - dTime >= clickTime) && (dX == uX) && (dY == uY)) {
            document.getElementById('close-tab-buttonPanel')
              .openPopupAtScreen(dX - panelWidth / 2 , dY - panelHeight / 2 , false);
          }
        }, false);
    
        const panelpanel = document.createElementNS(NSxul, 'panel');
        panelpanel.setAttribute('id', 'close-tab-buttonPanel');
        panelpanel.setAttribute('style',
          'width: ' + panelWidth + 'px; height: ' + panelHeight + 'px; background: ' + panelColor);
        panelpanel.setAttribute('tooltiptext', 'Tab schließen');
        panelpanel.setAttribute('onclick',
          'if (event.button == 0) { gBrowser.removeCurrentTab(); this.hidePopup(); }');
        document.getElementById('mainPopupSet').appendChild(panelpanel);
    
      } catch(e) {};
    
    })();
    Alles anzeigen
  • Tab Schließen Javascript

    • aborix
    • 6. November 2020 um 22:26

    Teste dieses Skript:

    JavaScript
    (function() {
    
      if (location != 'chrome://browser/content/browser.xhtml')
        return;
    
      try {
    
        const NSxul = 'http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul';
        const browser = document.getElementById('appcontent');
        var dTime, uTime, dX, dY, uX, uY;
    
        //Mausklick Zeit und die Koordinaten angeben
        browser.addEventListener('mousedown', function(event) {
          dTime = new Date().getTime();
          dX = event.screenX;
          dY = event.screenY;
        }, false);
    
        browser.addEventListener('mouseup', function(event) {
          uTime = new Date().getTime();
          uX = event.screenX;
          uY = event.screenY;
          if ((uTime - dTime >= 500) && (dX == uX) && (dY == uY)) {
            document.getElementById('close-tab-buttonPanel').openPopupAtScreen(dX - 9 , dY - 9 , false);
          }
        }, false);
    
        const panelpanel = document.createElementNS(NSxul, 'panel');
        panelpanel.setAttribute('id', 'close-tab-buttonPanel');
        panelpanel.setAttribute('style', 'height: 18px; width: 18px; background: red;');
        panelpanel.setAttribute('tooltiptext', 'Tab schließen');
        panelpanel.setAttribute('onclick',
          'if (event.button == 0) { gBrowser.removeCurrentTab(); this.hidePopup(); }');
        document.getElementById('mainPopupSet').appendChild(panelpanel);
    
      } catch(e) {};
    
    })();
    Alles anzeigen
  • Tab Schließen Javascript

    • aborix
    • 5. November 2020 um 21:27

    Ich habe auch noch ein Skript: ;)

    JavaScript
    (function() {
    
      if (!window.gBrowser)
        return;
    
      var contextMenu = document.getElementById('contentAreaContextMenu');
      var menuseparator = document.createXULElement('menuseparator');
      menuseparator.id = 'context-sep-closetab';
      contextMenu.append(menuseparator);
    
      var menuitem = document.createXULElement('menuitem');
      menuitem.id = 'context-closetab';
      menuitem.setAttribute('label', 'Tab schließen');
      menuitem.setAttribute('oncommand', 'gBrowser.removeCurrentTab();');
      contextMenu.append(menuitem);
    
      var appcontent = document.getElementById('appcontent');
      appcontent.addEventListener('contextmenu', event => {
        setTimeout(() => {
          if (gContextMenu && !gContextMenu.shouldDisplay) {
            for (let string of 'back forward reload bookmarkpage'.split(' ')) {
              document.getElementById('context-' + string).removeAttribute('hidden');
            }
            document.getElementById('context-stop').setAttribute('hidden', 'true');
            const A = 'navigation sep-navigation savepage sep-paste selectall sep-viewsource viewsource viewinfo sep-bidi inspect-a11y inspect sep-closetab closetab'.split(' ');
            for (let node of contextMenu.childNodes) {
              if (A.includes(node.id.substring(8)))
                node.removeAttribute('hidden');
              else
                node.setAttribute('hidden', 'true');
            }
            contextMenu.openPopupAtScreen(event.screenX, event.screenY, true, event);
          }
        }, 50);
      });
    
    })();
    Alles anzeigen
  • FAQ: Vertikale, schmale Tableiste möglich ?

    • aborix
    • 30. Oktober 2020 um 02:07

    Vielleicht... füge Folgendes nach den User-Settings, also nach Zeile 40, ein:

    JavaScript
        var tabbarBox = document.createXULElement('vbox');
        tabbarBox.id = 'tabbar-box';
        tabbarBox.style.width = nTabsAutoPopupWidth + 'px';
        
        var sidebarBox = document.getElementById('sidebar-box');
        sidebarBox.parentNode.insertBefore(tabbarBox, sidebarBox);
  • FAQ: Vertikale, schmale Tableiste möglich ?

    • aborix
    • 29. Oktober 2020 um 23:08
    Zitat von BrokenHeart

    Die vertikale Tableiste wird nämlich erst angezeigt, wenn du mit der Maus an den linken Rand fährst ("Autopopup"). Auch wenn es merkwürdig klingt: Ich habe es seinerzeit nicht hinbekommen, dass die Tableiste immer angezeigt wird, was ja eigentlich einfacher sein sollte...

    Teste folgendes, damit die Leiste immer sichtbar ist:

    Im Skript aus #12 ersetze Zeile 302:

    JavaScript
            tabsToolbar.classList.add('StyleHidingTabsToolbar');

    durch

    JavaScript
            tabsToolbar.classList.add('StyleShowingTabsToolbar');

    und kommentiere diese Zeilen aus:

    JavaScript
                    tabsToolbar.classList.add('StyleShowingTabsToolbar');    
                    tabsToolbar.classList.remove('StyleHidingTabsToolbar');
    JavaScript
                    tabsToolbar.classList.add('StyleHidingTabsToolbar');
                    tabsToolbar.classList.remove('StyleShowingTabsToolbar');
  • Ist es möglich vor Schliessen eines TABS eine Benutzerdefinierte abfrage zu stellen?

    • aborix
    • 27. Oktober 2020 um 08:43

    Teste bitte folgendes:

    Öffne im betreffenden Tab mit Strg+Umschalt+K die Web-Konsole und gib folgenden Code ein, gefolgt von der Enter-Taste:

    JavaScript
    addEventListener('beforeunload', event => {
      event.preventDefault();
      setTimeout(() => {
        confirm('Abfrage');
      }, 0);
    });

    Beim Schließen sollte nun eine Abfrage kommen.

  • Neuen Tab mit nutzen

    • aborix
    • 27. Oktober 2020 um 00:18

    Wenn man mehrere Lesezeichen zugleich in Tabs öffnet, wird dabei der fokussierte Tab nicht überschrieben. Das Skript bewirkt, dass dieser Tab, wenn er leer ist, für das erste der Lesezeichen benutzt wird. Ein Tab gilt in diesem Zusammenhang im Wesentlichen dann als leer, wenn er die Seite about:blank, about:newtab oder about:home enthält. Genauer steht es hier im Quelltext:

    isEmpty und isBlankPageURL

    Das Skript verändert die Funktion PlacesUIUtils.openTabset, die für das gleichzeitige Öffnen mehrerer Tabs zuständig ist.

  • Neuen Tab mit nutzen

    • aborix
    • 26. Oktober 2020 um 22:49

    Teste bitte:

    JavaScript
    (function() {
    
      if (window.__SSi != 'window0')
        return;
    
      PlacesUIUtils.openTabset = function openTabset(aItemsToOpen, aEvent, aWindow) {
        if (!aItemsToOpen.length)
          return;
        let browserWindow = aWindow &&
          aWindow.document.documentElement.getAttribute("windowtype") == "navigator:browser" ?
          aWindow : BrowserWindowTracker.getTopWindow();
        var urls = [];
        let skipMarking = browserWindow && PrivateBrowsingUtils.isWindowPrivate(browserWindow);
        for (let item of aItemsToOpen) {
          urls.push(item.uri);
          if (skipMarking)
            continue;
          if (item.isBookmark)
            this.markPageAsFollowedBookmark(item.uri);
          else
            this.markPageAsTyped(item.uri);
        }
        var where = browserWindow ?
          browserWindow.whereToOpenLink(aEvent, false, true) : "window";
        if (where == "window") {
          let args = Cc["@mozilla.org/array;1"].createInstance(Ci.nsIMutableArray);
          let stringsToLoad = Cc["@mozilla.org/array;1"].createInstance(Ci.nsIMutableArray);
          urls.forEach(url => stringsToLoad.appendElement(PlacesUtils.toISupportsString(url)));
          args.appendElement(stringsToLoad);
          browserWindow = Services.ww.openWindow(
            aWindow,
            AppConstants.BROWSER_CHROME_URL,
            null,
            "chrome,dialog=no,all",
            args
          );
          return;
        }
        var loadInBackground = (where == "tabshifted");
        browserWindow.gBrowser.loadTabs(urls, {
          inBackground: loadInBackground,
          replace: browserWindow.gBrowser.selectedTab.isEmpty,
          triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
        });
      };
    
    })();
    Alles anzeigen
  • Ist es möglich vor Schliessen eines TABS eine Benutzerdefinierte abfrage zu stellen?

    • aborix
    • 21. Oktober 2020 um 10:22

    Hallo.

    Das ist mit AutoConfig machbar. Habt ihr bereits Erfahrung damit? Soll die Abfrage vor dem Schließen eines jeden Tabs erfolgen oder abhängig von bestimmten Bedingungen?

  • Bestimmte Ordner in Benutzer Profile löschen

    • aborix
    • 16. Oktober 2020 um 02:43

    Diese Funktionen stehen auf dieser Seite:

    MDN - OS.File for the main thread

    Eine Übersichtsseite für OS.File:

    MDN - OSFile.jsm

  • Lautsprechersymbol auf Tabs / Ton aktivieren

    • aborix
    • 15. Oktober 2020 um 16:38
    Zitat von camel-joe

    Kannst Du mir noch die richtigen Vorgaben (Größe, Auflösung, Farbtiefe und Format) für die Grafik nennen?

    Ich habe keine Ahnung, ob es da Beschränkungen gibt. Eine Größe von 16 x 16 px passt jedenfalls gut. Unpassende Größen kann man mit CSS (height, width usw.) verändern.

    Zitat von camel-joe

    Und ist es auch möglich, dass das Icon nach dem Klick anders aussieht?

    Ja. Das Skript wird etwas komplizierter. In den Zeilen 18 und 21 sind noch die Grafiken einzutragen.

    JavaScript
    (function() {
    
      if (!window.gBrowser)
        return;
    
      if (window.__SSi == 'window0') {
    
        CustomizableUI.createWidget({
          id: 'tab0-sound-button',
          label: 'Ton im ersten Tab',
          tooltiptext: 'Ton im ersten Tab',
          defaultArea: CustomizableUI.AREA_NAVBAR
        });
    
        let css = '\
          @-moz-document url("chrome://browser/content/browser.xhtml") { \
            #tab0-sound-button[muted="false"] { \
              list-style-image: url(...) \
            } \
            #tab0-sound-button[muted="true"] { \
              list-style-image: url(...) \
            } \
          }';
        let cssUri = makeURI('data:text/css,' + encodeURIComponent(css));
        let SSS = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
        SSS.loadAndRegisterSheet(cssUri, SSS.AGENT_SHEET);
    
      };
    
      let button = document.getElementById('tab0-sound-button');
    
      function setAttr() {
        setTimeout(function() {
          button.setAttribute('muted', gBrowser.tabs[0].muted);
        }, 200);
      };
    
      button.addEventListener('command', function() {
        gBrowser.tabs[0].toggleMuteAudio();
        setAttr();
      });
    
      addEventListener('TabOpen', setAttr);
      addEventListener('TabClose', setAttr);
      addEventListener('TabMove', setAttr);
    
      setAttr();
    
    })();
    Alles anzeigen
  • Bestimmte Ordner in Benutzer Profile löschen

    • aborix
    • 15. Oktober 2020 um 14:51

    Das war ein Irrtum von mir.

    Das sollte funktionieren:

    JavaScript
    Services.obs.addObserver(
      { observe: () =>
          OS.File.removeDir(OS.Path.join(OS.Constants.Path.profileDir, "chrome")) 
      },
      "quit-application-requested",
      false
    );

Unterstütze uns!

Jährlich (2025)

74,7 %

74,7% (485,86 von 650 EUR)

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