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

  • Quicklink-Button

    • aborix
    • 29. November 2022 um 11:05
    Zitat von 2002Andreas

    Dieses hier:

    Beitrag

    RE: Quicklink-Button

    Teste mal:

    (Quelltext, 58 Zeilen)

    aborix
    26. November 2022 um 23:29

    Da wird das neue Fenster nicht mit

    OpenBrowserWindow()

    sondern mit

    openDialog(AppConstants.BROWSER_CHROME_URL)

    geöffnet.

    Wie ist es, wenn du diese Anweisung in die Browserkonsole eingibst?

    Zitat von 2002Andreas

    Ich hatte mich oben im Beitrag vertan, und meinte diesen neuen Eintrag:

    event.preventDefault()

    Den meinte ich ohnehin auch.

  • Quicklink-Button

    • aborix
    • 29. November 2022 um 10:42
    Zitat von 2002Andreas

    Mich hat nur interessiert, warum es mit dem anderen Skript nicht so ist.

    Welches Skript nochmal genau?

    Zitat von 2002Andreas

    Ist das so richtig eingetragen?

    Das funktioniert zwar auch, aber ich meinte nach diesen Zeilen:

    JavaScript
            else if (event.button == 2) 
            {
  • Quicklink-Button

    • aborix
    • 29. November 2022 um 10:09

    Guten Morgen auch.

    Und mit dem Skript aus #96 klappt es nicht?

  • Quicklink-Button

    • aborix
    • 28. November 2022 um 22:36

    Noch ein Test: Wie ist es, wenn du in die Browserkonsole eingibst:

    OpenBrowserWindow()

  • Advents-Thread

    • aborix
    • 28. November 2022 um 22:31

    Süß. :)

  • Quicklink-Button

    • aborix
    • 28. November 2022 um 22:22
    Zitat von BrokenHeart

    In einer Bugzilla-Diskussion (Link muss ich erst suchen) wurde z.B. das Aufrufen eines Lesezeichens als typische Anwendung für OpenTrustedLinkIn beschrieben.

    Das interessiert mich. Falls du den Link noch findest, teile ihn bitte mit.

    Zitat von BrokenHeart

    Jetzt müsste man noch herausfinden, wie man das kurzzeitige Aufpoppen des Kontextmenüs beim Rechtsklick verhindern kann.

    Mit event.preventDefault().

    Zitat von 2002Andreas

    Fällt dir evtl. dazu etwas ein?

    Beitrag

    RE: Quicklink-Button

    […]

    Hallo aborix .

    Im Prinzip funtioniert es gut. :thumbup:

    Nur das neue Fenster ist immer kleiner :/



    Ich kann es vergrößern, aber bei einem erneuten Rechtsklick ist es wieder kleiner.

    Oder mache ich etwas falsch?
    2002Andreas
    27. November 2022 um 10:13

    Öffne mal mit Strg+N ein neues Fenster. Ist es gleich groß?

  • Advents-Thread

    • aborix
    • 28. November 2022 um 08:25

    Jetzt fehlt nur nur noch ein Mützchen fürs Horn. :saint:

  • Quicklink-Button

    • aborix
    • 27. November 2022 um 22:16

    Webseiten sollen mit openWebLinkIn geöffnet werden:

    openTrustedLinkIn, openWebLinkIn

    Bei mehreren Fenstern funktioniert der Klick zwar in allen Fenstern, aber nur, solange das erste geöffnet bleibt. Schließt man das erste Fenster, geht in den anderen nichts mehr. Diesen Event Listener:

    toolbaritem.onclick = event => onClick(event);

    muss man anders handhaben.

  • Quicklink-Button

    • aborix
    • 26. November 2022 um 23:29

    Teste mal:

    JavaScript
    (function() {
    
        if (!window.gBrowser)
            return;        
    
        try {
           CustomizableUI.createWidget({
              id: 'link-buttonF95',
              type: 'custom',
              defaultArea: CustomizableUI.AREA_NAVBAR,
              onBuild: function(aDocument) {
                  var currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");
                  var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                  toolbaritem.onclick = event => onClick(event);
                  var props = {
                      id: 'link-buttonF95',
                      class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                      removable: 'true',
                      label: 'QuicklinkF95',
                      accesskey: '',
                      tooltiptext: 'Quicklinks: F95',
                      style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/icons/F95_2.png") + '");',
                  }
                  for (var p in props) {
                      toolbaritem.setAttribute(p, props[p]);
                  }
                  return toolbaritem;
              }
           });
        } catch(e) { };
    
        function onClick(event) {
            let openNewWindow;
            if (event.button == 0) {
                openNewWindow = false;
            } else if (event.button == 2) {
                openNewWindow = true;
            } else
                return;
            let window = event.target.ownerGlobal;
            if (!openNewWindow) {
                window.openWebLinkIn('https://www.antenneduesseldorf.de/service/radioplayer.html?radiochannel=live',"tab");
                window.openWebLinkIn('https://www.bundesliga.com/de/2bundesliga/spieltag',"tab");
                window.openWebLinkIn('https://www.bundesliga.com/de/2bundesliga/tabelle',"tab");
            } else {
                let newWindow = window.openDialog(AppConstants.BROWSER_CHROME_URL);
                newWindow.addEventListener('load', () => {
                    newWindow.openWebLinkIn('https://www.antenneduesseldorf.de/service/radioplayer.html?radiochannel=live',"current");
                    newWindow.openWebLinkIn('https://www.bundesliga.com/de/2bundesliga/spieltag',"tab");
                    newWindow.openWebLinkIn('https://www.bundesliga.com/de/2bundesliga/tabelle',"tab");
                }, {once: true});
    
            }
        }
    
    }) ();
    Alles anzeigen
  • browser.warnOnQuit Skript funktioniert im aktuellem Nightly nicht mehr

    • aborix
    • 26. November 2022 um 09:57

    Teste bitte:

    JavaScript
    (function() {
    
      if (window.__SSi != 'window0')
        return;
    
      const { BrowserGlue } = ChromeUtils.import('resource:///modules/BrowserGlue.jsm');
    
      BrowserGlue.prototype._onQuitRequest =
      function BG__onQuitRequest(aCancelQuit, aQuitType) {
    
        // If user has already dismissed quit request, then do nothing
        if (aCancelQuit instanceof Ci.nsISupportsPRBool && aCancelQuit.data) {
          return;
        }
    
        // There are several cases where we won't show a dialog here:
        // 1. There is only 1 tab open in 1 window
        // 2. browser.warnOnQuit == false
        // 3. The browser is currently in Private Browsing mode
        // 4. The browser will be restarted.
        // 5. The user has automatic session restore enabled and
        //    browser.sessionstore.warnOnQuit is not set to true.
        // 6. The user doesn't have automatic session restore enabled
        //    and browser.tabs.warnOnClose is not set to true.
        //
        // Otherwise, we will show the "closing multiple tabs" dialog.
        //
        // aQuitType == "lastwindow" is overloaded. "lastwindow" is used to indicate
        // "the last window is closing but we're not quitting (a non-browser window is open)"
        // and also "we're quitting by closing the last window".
    
        if (aQuitType == "restart" || aQuitType == "os-restart") {
          return;
        }
    
        // browser.warnOnQuit is a hidden global boolean to override all quit prompts.
        if (!Services.prefs.getBoolPref("browser.warnOnQuit")) {
          return;
        }
    
        var windowcount = 0;
        var pagecount = 0;
        let pinnedcount = 0;
        for (let win of BrowserWindowTracker.orderedWindows) {
          if (win.closed) {
            continue;
          }
          windowcount++;
          let tabbrowser = win.gBrowser;
          if (tabbrowser) {
            pinnedcount += tabbrowser._numPinnedTabs;
            pagecount +=
              tabbrowser.browsers.length -
              tabbrowser._numPinnedTabs -
              tabbrowser._removingTabs.length;
          }
        }
    
        // No windows open so no need for a warning.
        if (!windowcount) {
          return;
        }
    
        // browser.warnOnQuitShortcut is checked when quitting using the shortcut key.
        // The warning will appear even when only one window/tab is open. For other
        // methods of quitting, the warning only appears when there is more than one
        // window or tab open.
        let shouldWarnForShortcut =
          this._quitSource == "shortcut" &&
          Services.prefs.getBoolPref("browser.warnOnQuitShortcut");
        let shouldWarnForTabs =
          //pagecount >= 2 &&
          Services.prefs.getBoolPref("browser.tabs.warnOnClose");
        if (!shouldWarnForTabs && !shouldWarnForShortcut) {
          return;
        }
    
        if (!aQuitType) {
          aQuitType = "quit";
        }
    
        let win = BrowserWindowTracker.getTopWindow();
    
        // Our prompt for quitting is most important, so replace others.
        win.gDialogBox.replaceDialogIfOpen();
    
        let titleId, buttonLabelId;
        if (windowcount > 1) {
          // More than 1 window. Compose our own message.
          titleId = {
            id: "tabbrowser-confirm-close-windows-title",
            args: { windowCount: windowcount },
          };
          buttonLabelId = "tabbrowser-confirm-close-windows-button";
        } else if (shouldWarnForShortcut) {
          titleId = "tabbrowser-confirm-close-tabs-with-key-title";
          buttonLabelId = "tabbrowser-confirm-close-tabs-with-key-button";
        } else {
          titleId = {
            id: "tabbrowser-confirm-close-tabs-title",
            args: { tabCount: pagecount },
          };
          buttonLabelId = "tabbrowser-confirm-close-tabs-button";
        }
    
        // The checkbox label is different depending on whether the shortcut
        // was used to quit or not.
        let checkboxLabelId;
        if (shouldWarnForShortcut) {
          const quitKeyElement = win.document.getElementById("key_quitApplication");
          const quitKey = ShortcutUtils.prettifyShortcut(quitKeyElement);
          checkboxLabelId = {
            id: "tabbrowser-confirm-close-tabs-with-key-checkbox",
            args: { quitKey },
          };
        } else {
          checkboxLabelId = "tabbrowser-confirm-close-tabs-checkbox";
        }
    
        let [
          title,
          buttonLabel,
          checkboxLabel,
        ] = win.gBrowser.tabLocalization.formatMessagesSync([
          titleId,
          buttonLabelId,
          checkboxLabelId,
        ]);
    
        let warnOnClose = { value: true };
        let flags =
          Services.prompt.BUTTON_TITLE_IS_STRING * Services.prompt.BUTTON_POS_0 +
          Services.prompt.BUTTON_TITLE_CANCEL * Services.prompt.BUTTON_POS_1;
    
        // 1 Fenster mit höchstens 1 nicht angehefteter Tab
        if (windowcount == 1 && pagecount < 2 && this._quitSource != "shortcut") {
          title.value = "Fenster schließen?";
          buttonLabel.value = "Schließen";
          checkboxLabel.value = null;
        }
    
        // buttonPressed will be 0 for closing, 1 for cancel (don't close/quit)
        let buttonPressed = Services.prompt.confirmEx(
          win,
          title.value,
          null,
          flags,
          buttonLabel.value,
          null,
          null,
          checkboxLabel.value,
          warnOnClose
        );
        Services.telemetry.setEventRecordingEnabled("close_tab_warning", true);
        let warnCheckbox = warnOnClose.value ? "checked" : "unchecked";
    
        let sessionWillBeRestored =
          Services.prefs.getIntPref("browser.startup.page") == 3 ||
          Services.prefs.getBoolPref("browser.sessionstore.resume_session_once");
        Services.telemetry.recordEvent(
          "close_tab_warning",
          "shown",
          "application",
          null,
          {
            source: this._quitSource,
            button: buttonPressed == 0 ? "close" : "cancel",
            warn_checkbox: warnCheckbox,
            closing_wins: "" + windowcount,
            closing_tabs: "" + (pagecount + pinnedcount),
            will_restore: sessionWillBeRestored ? "yes" : "no",
          }
        );
    
        // If the user has unticked the box, and has confirmed closing, stop showing
        // the warning.
        if (buttonPressed == 0 && !warnOnClose.value) {
          if (shouldWarnForShortcut) {
            Services.prefs.setBoolPref("browser.warnOnQuitShortcut", false);
          } else {
            Services.prefs.setBoolPref("browser.tabs.warnOnClose", false);
          }
        }
    
        this._quitSource = "unknown";
    
        aCancelQuit.data = buttonPressed != 0;
      }
    
    })();
    Alles anzeigen
  • browser.warnOnQuit Skript funktioniert im aktuellem Nightly nicht mehr

    • aborix
    • 25. November 2022 um 07:34

    Die Funktion BrowserGlue.prototype._onQuitRequest wurde geändert. Ich warte einige Nightlies ab, vielleicht wird da noch mehr geändert.

    mozsearch: BG__onQuitRequest

  • Skript für Add-ons Update

    • aborix
    • 21. November 2022 um 09:04
    Zitat von BrokenHeart

    Und wehe, jemand findet noch ein Haar in der Suppe... :cursing:

    Öffne ein zweites Fenster, schließe das erste und dann klick im zweiten auf den Button. :S

  • Skript für Add-ons Update

    • aborix
    • 18. November 2022 um 08:39

    So wird Neuladen ins Skript eingebaut, vorsichtshalber wieder mit Verzögerung:

    Vor dieser Zeile:

    JavaScript
                categories.addEventListener('mousedown', function onMousedown(event) {

    einfügen:

    JavaScript
                content.setTimeout(function() {
                  content.location.reload();
                }, 1000);
  • Skript für Add-ons Update

    • aborix
    • 17. November 2022 um 20:40

    Testet mal bitte. Falls es funktioniert, dauert es zwei Sekunden, bis die Updates angezeigt werden.

    JavaScript
    (function() {
      if (window.__SSi != 'window0')
        return;
    
      CustomizableUI.createWidget({
        id: 'addons-update-button',
        defaultArea: CustomizableUI.AREA_NAVBAR,
        label: 'Add-ons Update',
        tooltiptext: 'Add-ons aktualisieren',
        onCommand: onCommand,
        onCreated: function(button) {
            button.style.listStyleImage = 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB9klEQVR42o2TP2gTURzHvwcRXqDDCzi8gww+cfACBRsoJAWXji0KzZFBxUELDoouOmnG6JQiWOogVAcpHUpvKDRLQbekoKRDJXHyLYHLIOQNhXtgBt+7u+SSpkq+w93xu9/vw++vhVj0MiUOyzicEo5LuFh/ACGV6PT6HflbKmOyzINnGdt5kPOKnBYxg5pCNu99apdEt9cLAYdPi4cr8+kVDGYJ10oB3mlQdzebqxZnlLZf5vsEwYzRkRTSyL1pZSznCuPtZ/zXlMcNV9e2FH2LBvCjDrAFoNsYueTeiashoPV4EkDWNrSzA/ltP2rwohumjZ9foI5qI7/8+yHgkT0CkGvLwK0q5KYLovzIWK6BXNf2754GVBPABz8GPEwAithQKQJ6JmJiBmqOQekGEyUTqAF8HALuJwDML4OY2gcK6us2EPQj+811Xf+J7kcrAXwOAZS37oyVcLsCFO5CHXvAQSWyLZaist6ugvRFAtg1gOw0QJrGFXTQmYyMcxRytwJyWp8YVAIoj/eAhoHh24nH2GmADHT95yad39MApm+gUbZ9OwVq1mNyWeKsppaEwB9ALu35drjKzwvs1YuFdHXa8V9bCNROgsrGce91CDCX6GbJkxJPr9sE9v+CfQXfE8H2fldtmYu0xn8a0IUZn0tgeMpGfwErbLqeHktDngAAAABJRU5ErkJggg==)';}
      });
    
      function onCommand(event) {
        let frameScript = function() {
          addEventListener('pageshow', function onPageshow(event) {
            let document = event.target;
            if (document.URL != 'about:addons')
              return;
            removeEventListener('pageshow', onPageshow);
    
            content.setTimeout(function() {
              document.querySelector('addon-page-options panel-item[action="check-for-updates"]').click();
              
              content.setTimeout(function() {
                let categories = document.getElementById('categories');
                let item = categories.querySelector('button[viewid="addons://updates/available"]');
                item.click();
    
                categories.addEventListener('mousedown', function onMousedown(event) {
                  if (event.target != item && event.target.parentNode != item) {
                    item.hidden = true;
                    categories.removeEventListener('mousedown', onMousedown);
                  };
                });
              }, 1000);
            }, 1000);
          });
        };
    
        let frameScriptURI = 'data:,(' + frameScript.toString() + ')()';
        let window = event.target.ownerGlobal;
        window.openTrustedLinkIn('about:addons', 'tab');
        window.gBrowser.selectedBrowser.messageManager.loadFrameScript(frameScriptURI, true);
      };
    })();
    Alles anzeigen
  • Skript für Add-ons Update

    • aborix
    • 17. November 2022 um 18:44

    Ich habe es mir schon angesehen und habe bis jetzt auch noch keine Lösung.

  • .js Skripte werden nicht ausgeführt

    • aborix
    • 7. November 2022 um 09:53

    Hallo,

    stehen in der Browserkonsole Meldungen?

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

    • aborix
    • 3. November 2022 um 08:34

    Entferne Zeile 31, die wird für neue Symbolleisten benötigt und nicht für Schaltflächen:

    JavaScript
              CustomizableUI.registerToolbarNode(tb);
  • Neuen beweglichen Button mit Funktion erstellen.

    • aborix
    • 16. Oktober 2022 um 21:42
    Zitat von Mira_Belle

    Gibt es irgendwo eine Sammlung von aborix Scripten?

    Oder sind die hier auf dem Board verteilt?

    Es gibt keine Sammlung, die sind übers Forum verteilt.

    Aber harff182 hat hier einige Urls zu Beiträgen mit Skripten von mir zusammengestellt:

    #90

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

    • aborix
    • 11. Oktober 2022 um 21:26

    Extrawurst ist glücklicherweise leicht machbar:

    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 => {
        let items = [];
        for (let mutation of mutations) {
          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
        )
      );
    
      document.getElementById('PersonalToolbar').addEventListener('toolbarvisibilitychange', event => {
        if (event.detail.visible) {
          setTimeout(() =>
            addListeners(document.querySelectorAll('#PlacesToolbarItems > toolbarbutton[type="menu"]')),
            100
          )
        }
      });
    
    })();
    Alles anzeigen
  • updatebookmark2.uc.js (Aktualisierung von aborix)

    • aborix
    • 10. Oktober 2022 um 09:11

    Das Skript erzeugt nur die Schaltfläche und nicht den Kontextmenüeintrag.

    Mache folgenden Test: In about:config setze devtools.chrome.enabled auf true, dann öffne mit Strg+Umschalt+J die Browserkonsole und gib dort ein:

    document.getElementById('bookmark-update-button')

    und drücke die Enter-Taste. Was steht dann in der Konsole?

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