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

Beiträge von Boersenfeger

  • Downloadfenster wird nicht mehr angezeigt im aktuellen Nightly

    • Boersenfeger
    • 7. April 2025 um 18:56

    Mist, das ist es also nicht... Der CSS gehört noch dazu

    CSS
    @charset "utf-8";
    /*@version       2023/05/18 fix for firefox113, flex-direction, frex-wrap*/
    /*@version       2023/04/25 fix for firefox113, inline-block firefox 113*/
    /*@version       2023/03/09 Bug 1820534 - Move front-end to modern flexbox.*/
    /*@version       2022/11/24 21:00 Bug 1802142 - Remove no longer used browser-bottombox*/
    /*@version       2022/11/20 19:00 107+ wip*/
    /*@version       2022/02/16 Bug 1747422 - Remove preprocessor variable use from downloads CSS*/
    /*@version       2020/03/13 fix for 74, broken listitem orient due to Bug 1606130
    /*@version       2019/12/11 fix for 73 Bug 1601094 - Rename remaining .xul files to .xhtml in browser */
    /*@version       2019/10/20 12:30*/
    
    /*FullScreen*/
    /*DOMFullScreen*/
    :root[inFullscreen] #downloadsStatusModokiBar,
    :root[inDOMFullscreen] #downloadsStatusModokiBar {
      display: none !important;
    }
    
    #contentAreaDownloadsView[ucjsDownloadsStatusModoki] { 
      flex-direction: row !important;
      background-color: var(--in-content-box-background) !important; 
      padding: 0 !important; 
    } 
    
    #contentAreaDownloadsView[ucjsDownloadsStatusModoki] > stack:first-child {
    }
    
     #ucjsDownloadsStatusModoki{
      border-top-width: 1px !important;
      border-top-style: solid !important;
      border-top-color: #646473 !important;
    } 
    
    #contentAreaDownloadsView[ucjsDownloadsStatusModoki] #downloadsListBox { 
      background-color: #fffff0 !important; 
      flex-direction: row;
      flex-wrap: wrap;
      overflow-y: auto !important; 
      scrollbar-width: thin;
      border: none !important;
    } 
    
    #contentAreaDownloadsView[ucjsDownloadsStatusModoki] richlistitem:not([hidden]) { 
      border-width: 0 1px 0 0  !important; 
      border-style: solid !important; 
      border-color: black !important;
      width: 276px !important;
      height: 3.0em !important;
      min-height: 3.0em !important;
      font-size: 12px !important; 
    }
    
    #contentAreaDownloadsView[ucjsDownloadsStatusModoki] .downloadMainArea {
    }
    
    #contentAreaDownloadsView[ucjsDownloadsStatusModoki] .downloadContainer {
    	max-width: 200px !important;
    }
    
    #contentAreaDownloadsView[ucjsDownloadsStatusModoki] .downloadTypeIcon {
    	margin-inline-end: 4px !important;
    	margin-inline-start: 4px !important;
    }
    
    #contentAreaDownloadsView[ucjsDownloadsStatusModoki] .downloadButton {
    	width: 36px !important;
    	padding-inline-end: 4px !important;
    	padding-inline-start: 4px !important;
    }
    #contentAreaDownloadsView[ucjsDownloadsStatusModoki] #downloadsListEmptyDescription
    {
    	flex: 1 !important;
    }
    Alles anzeigen

    Danke fürs Testen.. Im Regelfuchs ist der Button vorhanden

  • Downloadfenster wird nicht mehr angezeigt im aktuellen Nightly

    • Boersenfeger
    • 7. April 2025 um 18:22

    Ich hatte ein Script, das einen Button generiert. Wenn man diesen betätigte, öffnete sich das Downloadfenster

    about:downloads

    Seit gestern ist der Button nicht mehr vorhanden.

    Ich glaube, dass es dieses Script ist.

    JavaScript
    // ==UserScript==
    // @name           ucjsDownloadsStatusModoki.uc.js
    // @namespace      http://space.geocities.yahoo.co.jp/gl/alice0775
    // @description    Downloads Status Modoki
    // @include        main
    // @compatibility  Firefox 135+
    // @author         Alice0775
    // @note           ucjsDownloadsStatusModoki.uc.js.css をuserChrome.cssに読み込ませる必要あり
    // @version        2025/02/08 19:00 fix ref node
    // @version        2023/10/10 00:00 Stop using xml-stylesheet processing instructions
    // @version        2023/07/17 00:00 use ES module imports
    // @version        2023/06/20 remove Bug 1780695 - Remove Services.jsm
    // @version        2023/06/18 21:00 null
    // @version        2023/05/18 21:00 
    // @version        2022/11/24 21:00 Bug 1802142 - Remove no longer used browser-bottombox
    // @version        2022/11/22 Bug 877389 - [meta] Replace calls to Cu.reportError, etc. from browser code, replace with console.error, etc.
    // @version        2022/11/20 19:00 107+ wip
    // @version        2022/04/01 23:00 Convert Components.utils.import to ChromeUtils.import
    // @version        2022/02/16 Bug 1747422 - Remove preprocessor variable use from downloads CSS
    // @version        2019/12/11 fix for 73 Bug 1601094 - Rename remaining .xul files to .xhtml in browser
    // @version        2019/10/20 12:30 workaround Bug 1497200: Apply Meta CSP to about:downloads, Bug 1513325 - Remove textbox binding
    // @version        2019/09/08 19:30 fix scrollbox
    // @version        2019/05/21 08:30 fix 69.0a1 Bug 1551320 - Replace all createElement calls in XUL documents with createXULElement
    // @version        2018/10/27 12:00 fix for 64+
    // @version        2018/06/12 21:00 fix for private window mode
    // @version        2018/06/07 12:00 fix file name for history
    // @version        2018/02/10 12:00 try catch error when DO_NOT_DELETE_HISTORY = true
    // @version        2017/12/10 12:00 fix error when DO_NOT_DELETE_HISTORY = true
    // @version        2017/12/10 12:00 remove workaround Bug 1279329. Disable btn while clear list is doing, close button styling for 57.
    // @version        2016/06/10 12:00 modify style independent of font-family
    // @version        2016/06/10 07:00 modify style of close button, fix typo
    // @version        2016/06/10 00:00 Workaround Bug 1279329. adjust some padding
    // @version        2015/05/08 00:00 remove padding due to Bug 1160734
    // @version        2014/03/31 00:00 fix for browser.download.manager.showWhenStarting
    // @version        2013/12/22 13:00 chromehidden
    // @version        2013/12/19 17:10 rename REMEMBERHISTOTY to DO_NOT_DELETE_HISTORY
    // @version        2013/12/16 23:28 fixed initialize numDls
    // @version        2013/12/16 23:24 open only download added
    // @version        2013/12/16 23:10 open only download started
    // @version        2013/12/16 21:20 modify css Windows7 Aero
    // @version        2013/12/16 21:00 modify css
    // @version        2013/12/16 19:30 add autocheck false
    // @version        2013/12/16 18:31 fix pref name
    // @version        2013/12/16 18:30
    // @note           about:config userChrome.downloadsStatusModoki.showWhenStarting (true/false)
    // @note                        userChrome.downloadsStatusModoki.closeWhenDone (true/false)
    // ==/UserScript== 
    var ucjsDownloadsStatusModoki = {
      _summary: null,
      _list: null,
    
      get downloadsStatusModokiBar() {
        delete downloadsStatusModokiBar;
        return this.downloadsStatusModokiBar = document.getElementById("downloadsStatusModokiBar");
      },
    
      get toggleMenuitem() {
        delete toggleMenuitem;
        return this.toggleMenuitem = document.getElementById("toggle_downloadsStatusModokiBar");
      },
    
      init: function() {
        if (document.documentElement.getAttribute("chromehidden") !="" )
          return;
    
    
        ChromeUtils.defineESModuleGetters(this, {
          Downloads: "resource://gre/modules/Downloads.sys.mjs",
        });
    
        var style = ` 
          @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); 
    
          #ucjsDownloadsStatusModoki { 
            width: 100%; 
            max-height: 100px; 
            height: 3.35em; 
          } 
         `.replace(/\s+/g, " ");
    
        var sss = Cc['@mozilla.org/content/style-sheet-service;1']
                  .getService(Ci.nsIStyleSheetService);
        var uri = makeURI('data:text/css;charset=UTF=8,' + encodeURIComponent(style));
        if(!sss.sheetRegistered(uri, sss.USER_SHEET))
          sss.loadAndRegisterSheet(uri, sss.USER_SHEET);
    /*
        var sspi = document.createProcessingInstruction(
          'xml-stylesheet',
          'type="text/css" href="data:text/css,' + encodeURIComponent(style) + '"'
        );
        document.insertBefore(sspi, document.documentElement);
        sspi.getAttribute = function(name) {
          return document.documentElement.getAttribute(name);
        };
    */
    
        var toolbar = document.createXULElement("vbox");
        toolbar.setAttribute("id", "downloadsStatusModokiBar");
        toolbar.collapsed = true;
        var ref = document.getElementById("a11y-announcement");
        ref.parentNode.insertBefore(toolbar, ref)
    //    var bottombox = document.getElementById("browser-bottombox");
    //    bottombox.insertBefore(toolbar, bottombox.firstChild);
        var browser = toolbar.appendChild(document.createXULElement("browser"));
        browser.setAttribute("disablehistory", true);
        browser.setAttribute("remote", false);
        browser.setAttribute("id", "ucjsDownloadsStatusModoki");
        browser.addEventListener("load", function(event){ucjsDownloadsStatusModoki.onload(event)}, true);
        browser.setAttribute("src", "chrome://browser/content/downloads/contentAreaDownloadsView.xhtml?StatusModoki");
        var menuitem = document.createXULElement("menuitem");
        menuitem.setAttribute("id", "toggle_downloadsStatusModokiBar");
        menuitem.setAttribute("type", "checkbox");
        menuitem.setAttribute("autocheck", false);
        menuitem.setAttribute("label", "Download Leiste");
        menuitem.setAttribute("checked", false);
        menuitem.setAttribute("accesskey", "D");
        //menuitem.setAttribute("oncommand", "ucjsDownloadsStatusModoki.toggleDownloadsStatusModokiBar()");
        ref = document.getElementById("menu_customizeToolbars");
        ref.parentNode.insertBefore(menuitem, ref.previousSibling);
        document.getElementById("toggle_downloadsStatusModokiBar").addEventListener("command", () => ucjsDownloadsStatusModoki.toggleDownloadsStatusModokiBar());
    
        // Ensure that the DownloadSummary object will be created asynchronously.
        if (!this._summary) {
          this.Downloads.getSummary(this.Downloads.ALL).then(summary => {
            this._summary = summary;
            return this._summary.addView(this);
          }).then(null, console.error);
        }
        if (!this._list) {
          this.Downloads.getList(this.Downloads.ALL).then(list => {
            this._list = list;
            return this._list.addView(this);
          }).then(null, console.error);
        }
    
        window.addEventListener("unload", this, false);
      },
    
      uninit: function() {
        window.removeEventListener("unload", this, false);
        if (this._summary) {
          this._summary.removeView(this);
        }
        if (this._list) {
          this._list.removeView(this);
        }
      },
    
      handleEvent: function(event) {
        switch (event.type) {
          case "unload":
            this.uninit();
            break;
        }
      },
    
      toggleDownloadsStatusModokiBar: function() {
        var collapsed = this.downloadsStatusModokiBar.collapsed;
        this.downloadsStatusModokiBar.collapsed = !collapsed;
        this.toggleMenuitem.setAttribute("checked", collapsed);
      },
    
      openDownloadsStatusModoki: function() {
        this.downloadsStatusModokiBar.collapsed = false;
        this.toggleMenuitem.setAttribute("checked", true);
      },
    
      hideDownloadsStatusModoki: function() {
        this.downloadsStatusModokiBar.collapsed = true;
        this.toggleMenuitem.setAttribute("checked", false);
      },
    
      onDownloadAdded: function (aDownload) {
        var showWhenStarting = true;
        try {
          showWhenStarting = Services.prefs.getBoolPref("userChrome.downloadsStatusModoki.showWhenStarting");
        } catch(e) {}
        this.numDls = 0;
        if (showWhenStarting) {
          if (this._list) {
            this._list.getAll().then(downloads => {
              for (let download of downloads) {
                if (!download.stopped)
                  this.numDls++;
              }
              if (this.numDls > 0)
                this.openDownloadsStatusModoki(false);
            }).then(null, console.error);
          }
        }
      },
    
      onSummaryChanged: function () {
        if (!this._summary)
          return;
        if (this._summary.allHaveStopped || this._summary.progressTotalBytes == 0) {
          var closeWhenDone = true;
          try {
            closeWhenDone = Services.prefs.getBoolPref("userChrome.downloadsStatusModoki.closeWhenDone");
          } catch(e) {}
          if (closeWhenDone) {
            this.hideDownloadsStatusModoki();
          }
        }
      },
    
    
    
      // chrome://browser/content/downloads/contentAreaDownloadsView.xhtml
      onload: function(event) {
        var doc = event.originalTarget;
        var win = doc.defaultView;
        doc.documentElement.setAttribute("ucjsDownloadsStatusModoki", "true");
    
        var button = doc.createXULElement("button");
        button.setAttribute("label", "Löschen");
        button.setAttribute("id", "ucjs_clearListButton");
        button.setAttribute("accesskey", "L");
        var ref = doc.getElementById("downloadsListEmptyDescription");
        var vbox = doc.createXULElement("vbox");
        var box = vbox.appendChild(doc.createXULElement("hbox"));
        box.appendChild(button);
        box.appendChild(doc.createXULElement("spacer")).setAttribute("flex", 1);
        var textbox = doc.createElementNS("http://www.w3.org/1999/xhtml", "input");
        textbox.setAttribute("id", "downloadFilter");
        textbox.setAttribute("clickSelectsAll", true);
        textbox.setAttribute("type", "search");
        textbox.setAttribute("placeholder", "Suchen...");
        box.appendChild(textbox);
        var closebtn = doc.createXULElement("toolbarbutton");
        closebtn.setAttribute("id", "ucjsDownloadsStatusModoki-closebutton");
        closebtn.setAttribute("class", "close-icon");
        closebtn.setAttribute("tooltiptext", "Download-Leiste schließen");
        box.appendChild(closebtn);
        ref.parentNode.insertBefore(vbox, ref.nextSibling);
        doc.getElementById("ucjs_clearListButton").addEventListener("command", function(event) {
            win.ucjsDownloadsStatusModoki_clearDownloads();
          });
        doc.getElementById("downloadFilter")
                .addEventListener("input", function(event) {
            win.ucjsDownloadsStatusModoki_doSearch(event.target.value);
          });
        doc.getElementById("ucjsDownloadsStatusModoki-closebutton")
                .addEventListener("command", function(event) {
            win.ucjsDownloadsStatusModoki_doClose();
          });
    
    /*
        // xxx Bug 1279329 "Copy Download Link" of context menu in Library is grayed out
        var listBox = doc.getElementById("downloadsListBox");
        var placesView = listBox._placesView;
        if (placesView) {
          var place = placesView.place;
          placesView.place= null;
          placesView.place = place;
        }
    */
        win.ucjsDownloadsStatusModoki_clearDownloads = function ucjs_clearDownloads() {
          var DO_NOT_DELETE_HISTORY = true; /* custmizable true or false */
          var richListBox = doc.getElementById("downloadsListBox");
    
          var places = [];
          function addPlace(aURI, aTitle, aVisitDate) {
            places.push({
              uri: aURI,
              title: aTitle,
              visits: [{
                visitDate: (aVisitDate || Date.now()) * 1000,
                transitionType: Ci.nsINavHistoryService.TRANSITION_LINK
              }]
            });
          }
          function moveDownloads2History() {
            if (DO_NOT_DELETE_HISTORY &&
                !PrivateBrowsingUtils.isWindowPrivate(window)) {
              try {
                for (let element of richListBox.childNodes) {
                  let download = element._shell.download;
                  let aURI = makeURI(download.source.url);
                  // let aTitle = document.getAnonymousElementByAttribute(element, "class", "downloadTarget").value
                  let aTitle = download.target.path;
                  aTitle = aTitle.match( /[^\\]+$/i )[0];
                  aTitle = aTitle.match( /[^/]+$/i )[0];
    
                  let aVisitDate = download.endTime || download.startTime;
                  addPlace(aURI, aTitle, aVisitDate)
                }
              } catch(ex) {}
            }
    
            // Clear List
            richListBox._placesView.doCommand('downloadsCmd_clearDownloads');
    
            if (DO_NOT_DELETE_HISTORY &&
                !PrivateBrowsingUtils.isWindowPrivate(window)) {
              try {
                if (places.length > 0) {
                  var asyncHistory = Components.classes["@mozilla.org/browser/history;1"]
                           .getService(Components.interfaces.mozIAsyncHistory);
                    asyncHistory.updatePlaces(places);
                }
              } catch(ex) {}
            }
          }
          var btn = doc.getElementById("ucjs_clearListButton");
          btn.setAttribute("disabled", true);
          moveDownloads2History();
          btn.removeAttribute("disabled");
    
          // close toolbar
          var closeWhenDone = false;
          try {
            closeWhenDone = Services.prefs.getBoolPref("userChrome.downloadsStatusModoki.closeWhenDone");
          } catch(e) {}
          if (closeWhenDone) {
            top.ucjsDownloadsStatusModoki.hideDownloadsStatusModoki();
          }
        };
    
        win.ucjsDownloadsStatusModoki_doSearch = function ucjs_doSearch(filterString) {
          var richListBox = doc.getElementById("downloadsListBox");
          richListBox._placesView.searchTerm = filterString;
        };
    
        win.ucjsDownloadsStatusModoki_doClose = function ucjs_doClose() {
          top.ucjsDownloadsStatusModoki.hideDownloadsStatusModoki();
        };
    
      }
    
    }
    ucjsDownloadsStatusModoki.init();
    Alles anzeigen

    Eine neuere Version ist beim Entwickler nicht vorhanden.

    Zwei Fragen: Ist es das Script?

    Falls ja: Wer nutzt dies noch und kann den Vorgang bestätigen?

    Falls nein: Wer hat eine Abhilfe?

  • Windows 11

    • Boersenfeger
    • 5. April 2025 um 19:50

    Ich will aber kein MS-Konto ;)

  • Windows 11

    • Boersenfeger
    • 5. April 2025 um 18:26

    Foxxiator Danke, ich hatte bereits nachgesehen... #643 ;)

  • AddBookmark here Script arbeitet nicht in Nightly

    • Boersenfeger
    • 5. April 2025 um 15:20

    jizz#1 hattest du gelesen?

    Aber ich bin jetzt grade verwirrt; Nachdem ich das Script aus #1 gelöscht hatte, funktioniert das Lesezeichen speichern im von mir gewünschten Pfad einwandfrei. Huh?

    Die empfohlene Erweiterung ist noch nicht installiert.

  • Windows 11

    • Boersenfeger
    • 5. April 2025 um 15:08

    Prima, hier sind alle Laufwerke und angesteckten nicht verschlüsselt. :)

    Vielen Dank für den Hinweis! :thumbup:

  • Windows 11

    • Boersenfeger
    • 5. April 2025 um 14:21
    Zitat von 2002Andreas
    Zitat von Foxxiator

    das Bitlocker hier ungefragt alle lokalen Datenträger verschlüsselt hat

    Um das hier an meinem neuen Desktoprechner Win 11 Pro nachzuvollziehen... Woher weiß ich, ob meine Festplatte verschlüsselt ist? Wo bzw wie könnte ich dies rückgängig machen? Einen Recovery Schlüssel habe ich nicht und ein Microsoftkonto ebenfalls nicht, wo ich den ggf einsehen könnte.

  • AddBookmark here Script arbeitet nicht in Nightly

    • Boersenfeger
    • 5. April 2025 um 14:20

    Vielen Dank, teste ich mal... :thumbup:

    Falls mein jetziges Erlebnis nicht anhält, lese meinen letzten Beitrag. ;)

  • AddBookmark here Script arbeitet nicht in Nightly

    • Boersenfeger
    • 4. April 2025 um 16:11

    Hat noch jemand eine Idee, wie das Script funktionsfähig wird? Oder geht es grundsätzlich nicht mehr? Gibts evtl eine Erweiterung, die das Genannte liefert?

  • Toolbox Button.uc.js funktioniert nur teilweise in Fx 139

    • Boersenfeger
    • 3. April 2025 um 19:05

    Stimmt! ;)

  • Mozilla veröffentlicht Firefox 137 mit Tab-Gruppen und verbesserter Adressleiste

    • Boersenfeger
    • 3. April 2025 um 18:50

    Das ist ja nun Auslegungssache, ich hatte es so verstanden, dass er nicht direkt in about:config Schalter umlegen möchte.

  • Toolbox Button.uc.js funktioniert nur teilweise in Fx 139

    • Boersenfeger
    • 3. April 2025 um 17:48

    Hier funktioniert der Rechtsklick nicht

  • Toolbox Button.uc.js funktioniert nur teilweise in Fx 139

    • Boersenfeger
    • 3. April 2025 um 17:16

    Was genau soll das Script Toolbox-Button machen?

    Ich habe es installiert und wenn ich den Button klicke, passiert .... nix :/

  • Mehrzeilige Tableiste + ungelesene Tabs farbig

    • Boersenfeger
    • 3. April 2025 um 17:03
    Zitat von bogomir

    Noch eine Frage, besteht die Möglichkeit, dass das X zum Schließen der Tabs nur im aktiven Tab zu sehen ist und sonst nicht? :/

    Funktioniert hier mit diesem Schnipsel:

    CSS
     /* Schliessen-Button nur wenn angewählt */
    
        tab:not([selected]) .tab-close-button {
    	display: none !important; 
        }

  • Mozilla veröffentlicht Firefox 137 mit Tab-Gruppen und verbesserter Adressleiste

    • Boersenfeger
    • 3. April 2025 um 16:57

    Webmark
    Um Probleme aufgrund von Umstellungen / Aktualisierungen etc. besser aufspüren zu können, empfehle ich die Nutzung einer user.js.
    Diese Datei kann man kommentieren und findet ggf. so schneller einen entsprechenden Eintrag...
    Die user.js wird im Profilordner abgespeichert. Bei Änderungen hieran sollte immer ein Browserneustart erfolgen..
    Nach diesem Motto kann man sie z.B. erstellen...

    // Neuer Tab aus Lesezeichen

    user_pref("browser.tabs.loadBookmarksInTabs",true);

    // Neuer Tab aus Lesezeichen im Hintergrund öffnen

    user_pref("browser.tabs.loadBookmarksInBackground",true);


    Achtung: Auch nach Löschung der user.js bleiben die Einträge erhalten, also händisch aus about:config entfernen!!
    Ich nutze übrigens zur Bearbeitung https://notepad-plus-plus.org/ Wenn du viel mit Scripten, CSS-Dateien usw. arbeitest, wirst du auf diesen Editor nicht mehr verzichten wollen.. Die meisten Coder hier im Forum (wenn nicht alle) nutzen ihn...

    Entsprechend kannst du auch den obigen Schalter umlegen.. :)

  • Der Glückwunsch-Thread

    • Boersenfeger
    • 3. April 2025 um 16:52

    Webmark Auch von mir Alles Gute und vor allem viel Gesundheit! :)

  • Toolbox Button.uc.js funktioniert nur teilweise in Fx 139

    • Boersenfeger
    • 3. April 2025 um 16:51

    Für hier Mitlesende:

    Es gibt bereits eine Initiative, dass die Einschränkung in einer der nächsten Versionen für die Nutzer von Scripten behoben sein wird:

    Beitrag

    RE: extras_config_menu.uc.js in Fx 139 keine Funktion mehr

    Heißt das, wir müssen nichts machen und mit einer der nächsten Nightlies funktioniert das Script wieder?

    Ich schalte erst mal den Schalter in about:config ab.
    Boersenfeger
    3. April 2025 um 16:08
  • Was schaut ihr gerade?

    • Boersenfeger
    • 3. April 2025 um 16:40

    Wenn nur dieses dämliche Sendungsbewusstsein nicht wäre 8o

  • extras_config_menu.uc.js in Fx 139 keine Funktion mehr

    • Boersenfeger
    • 3. April 2025 um 16:15

    Supi !:thumbup:

  • In der Menüzeile die Abstände der Einträge verringern

    • Boersenfeger
    • 3. April 2025 um 16:13

    https://hg.mozilla.org/mozilla-central/rev/5d642e3e5989cafa4c9508d143d43250b6259fba
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:139.0) Gecko/20100101 Firefox/139.0 ID:20250403095150

    Mit dieser Version kann ich das bestätigen! Danke :)

Unterstütze uns!

Jährlich (2025)

90,1 %

90,1% (585,86 von 650 EUR)

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