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

Beiträge von Mira_Belle

  • Nach Upgrade auf Version 147.0.3 werden manche Webseites, die über einen Link aktiviert werden sollen, nicht richtig angezeigt

    • Mira_Belle
    • 8. Februar 2026 um 13:03
    Zitat von REisele

    In der Linkdefinition steht diese URL

    Zitat von 2002Andreas

    Sieht hier so aus damit:

    Kann ich bestätigen!

  • Wetterfuchsbutton Script für userChrome.js

    • Mira_Belle
    • 7. Februar 2026 um 17:22

    Sorry, ich konnte nicht anders!
    Ich finde die Aufteilung so im Skript einfach besser
    und Symbole erst zu generieren, bzw. zu laden finde ich auch nicht so dolle.

    Also ist DAS dabei herausgekommen:

    CSS
    // ==UserScript==
    // @name           wetterfuchsbutton.uc.js
    // @compatibility  Firefox 147+
    // @include        main
    // @note           by mira with help from www.perplexity.ai and chat.mistral.ai
    // @note           completely rewritten on February 7, 2026
    // @version        1.1.
    // ==/UserScript==
    
    (function() {
      if (!window.gBrowser)
        return;
    
      const
      // ■■ START UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
               id = 'wetterfuchs-toolbarbutton', // Id des Buttons
            label = 'Wetterfuchs', // Bezeichnung des Buttons
      tooltiptext = 'Lokale und globale Wetter Infos',
      // Icon-------------------------------------------------------
             icon = 'Wetter.png',  // [Name.Dateiendung] des Symbols
         iconPath = '/chrome/image/', // Pfad zum Ordner der das Icon beinhaltet
      // ■■ END UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
       curProfDir = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir)),
    
      // kleines Lade-GIF als Platzhalter
       wfthrobber = "https://raw.github.com/ardiman/userChrome.js/master/wetterfuchsbutton/loading51.gif",
    
      // ■■ urlobj-Array ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
      urlobj = {
        MO_Doppelklick:           {url:"https://www.msn.com/de-de/wetter/heute/de/Berlin,BE,Deutschland/we-city-52.520,13.380",width:700,height:640},
        MO_Rechtsklick:           {url:"http://www.wetter.net/47/Berlin",width:850,height:630},
        MO_Mittelklick:           {url:"https://www.daswetter.com/wetter_Berlin-Europa-Deutschland-Berlin--1-26301.html",width:800,height:638},
        DED_WetterAktuell:        {url:"https://www.wetterkontor.de/de/deutschland_aktuell.asp?id=0&page=0&sort=0",width:625,height:865},
        DED_Vorhersage:           {url:"https://www.wetterkontor.de/de/wetter/deutschland.asp",width:670,height:780},
    	  DED_Wetterlage:           {url:"https://www.wetterkontor.de/de/wetterlage.asp",width:430,height:405},
        DED_Pollenbelastung:      {url:"https://www.wetterkontor.de/de/bio/pollenflug-erle.asp",width:560,height:730},
        DED_UVIndexVorhersage:    {url:"https://www.wetterkontor.de/de/bio/uv-index.asp",width:478,height:720},
    	  DED_Gesund:               {url:"https://www.wetterkontor.de/de/bio/befinden-und-gesundheit.asp?id=1",width:572,height:565},
    	  DED_Therm:                {url:"https://www.wetterkontor.de/de/bio/thermische-belastung.asp",width:572,height:565},
    	  DED_Flusspegel:           {url:"https://www.wetterkontor.de/de/pegel/",width:670,height:792},
    	  DED_Regenradar:           {url:"https://www.wetterkontor.de/de/radar.asp?p=1",width:532,height:575},
        DED_RegenradarVorhersage: {url:"https://www.wetterkontor.de/de/radar/radar-vorhersage.asp?p=1",width:528,height:570},
    	  DED_Satellitenbild:       {url:"https://www.austrocontrol.at/jart/met/radar/satloop.gif",width:620,height:470},
    	  DED_BlitzMittel:          {url:"https://map.blitzortung.org/#5.34/51.978/10.499",width:740,height:740},
    	  DED_BlitzEuro:            {url:"https://map.blitzortung.org/#5.25/50.48/11.333",width:740,height:740},
    	  DED_BlitzWelt:            {url:"https://map.blitzortung.org/#1.37/43.3/21.9",width:940,height:678},
        DE_WetterAktuell:         {url:"https://www.dwd.de/DWD/wetter/aktuell/deutschland/bilder/wx_deutschland.jpg",width:780,height:520},
        DE_Vorhersage:            {url:"https://www.dwd.de/DWD/wetter/wv_allg/deutschland/film/vhs_deutschland.jpg",width:780,height:485},
        DE_Unwetterwarnung:       {url:"http://www.unwetterzentrale.de/images/map/deutschland_index.png",width:572,height:572},
        DE_RegenradarAktuell:     {url:"https://www.niederschlagsradar.de/de-de",width:570,height:650},
        DE_RegenradarPrognose:    {url:"https://www.windy.com/de/-Regen-Gewitter-rain?rain,50.723,10.525,7",width:620,height:690},
        EU_AktuellVorhersage:     {url:"https://www.wetterkontor.de/de/wetter/europa/",width:680,height:690},
        EU_Unwetterwarnung:       {url:"http://www.unwetterzentrale.de/images/map/europe_index.png",width:572,height:572},
        EU_RegenradarAktuell:     {url:"https://www.niederschlagsradar.de/de-de/continent/eu",width:570,height:670},
        EU_RegenradarPrognose:    {url:"https://www.wetteronline.de/regenradar/europa?wro=true",width:660,height:700},
        WE_WetterAktuell:         {url:"https://www.wetterdienst.de/Weltwetter/Beobachtungen/Aktuell/Nordamerika/",width:660,height:690},
    	  WE_WetterVorhersage:      {url:"https://wetter.faz.net/reisewetter/",width:660,height:700},
        RE_AktuellVorhersage:     {url:"https://www.wetterkontor.de/de/wetter/deutschland/brandenburg-berlin.asp",width:675,height:640},
        RE_Unwetterwarnung:       {url:"https://www.wetterkontor.de/warnungen/wetterwarnungen-brandenburg-berlin.asp",width:850,height:560},
        RE_RegenradarAktuell:     {url:"https://www.wetterkontor.de/de/radar/radar-nordost.asp",width:568,height:530},
        RE_RegenradarPrognose:    {url: "https://www.wetteronline.de/regenradar/berlin-bundesland?mode=interactive&wrx=50.16,8.77&wrm=8", width: 850, height: 850},
      };
      // ■■ END Arrey ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
      if (Services.prefs.getBoolPref('svg.context-properties.content.enabled') == false) {
        Services.prefs.setBoolPref('svg.context-properties.content.enabled', true);
      }
    
      // Button erstellen
      try {
        CustomizableUI.createWidget({
          id: id,
          defaultArea: CustomizableUI.AREA_NAVBAR,
          label: label,
          tooltiptext: tooltiptext,
          onCreated: (button) => {
            button.style.MozContextProperties = 'fill, stroke, fill-opacity';
            button.style.listStyleImage = 'url("' + curProfDir + iconPath + icon + '")';
            button.style.minWidth = 'fit-content';
    
            // Menü hinzufügen
            let menupopup = document.createXULElement('menupopup');
            menupopup.id = 'wetterfuchs-menupopup';
    
            const menues = [
              {
                label: "DE Wetterdaten",
                items: [
                  ["Wetter aktuell", "DED_WetterAktuell"],
                  ["Vorhersage", "DED_Vorhersage"],
                  ["Pollenbelastung", "DED_Pollenbelastung"],
                  ["UV-Index", "DED_UVIndexVorhersage"],
                  ["Gesund. Beschwerden", "DED_Gesund"],
                  ["Thermische Belastung", "DED_Therm"],
                  ["Wetterlage", "DED_Wetterlage"],
                  ["Flusspegel", "DED_Flusspegel"],
                  ["Regenradar", "DED_Regenradar"],
                  ["Regenradar Vorhersage", "DED_RegenradarVorhersage"],
                  ["Satellitenbild", "DED_Satellitenbild"]
                ]
              },
              {
                label: "DE Wetterkarten",
                items: [
                  ["Wetter aktuell", "DE_WetterAktuell"],
                  ["Vorhersage", "DE_Vorhersage"],
                  ["Unwetterwarnung", "DE_Unwetterwarnung"],
                  ["Regenradar aktuell", "DE_RegenradarAktuell"],
                  ["Regenradarprognose", "DE_RegenradarPrognose"]
                ]
              },
              {
                label: "EU Wetter",
                items: [
                  ["Aktuell und Vorhersage", "EU_AktuellVorhersage"],
                  ["Unwetterwarnung", "EU_Unwetterwarnung"],
                  ["Regenradar aktuell", "EU_RegenradarAktuell"],
                  ["Regenradarprognose", "EU_RegenradarPrognose"]
                ]
              },
              {
                label: "Welt Wetter",
                items: [
                  ["Aktuell", "WE_WetterAktuell"],
                  ["Vorhersage", "WE_WetterVorhersage"]
                ]
              },
              {
                label: "Blitzortung",
                items: [
                  ["Mitteleuropa", "DED_BlitzMittel"],
                  ["Europa", "DED_BlitzEuro"],
                  ["Welt", "DED_BlitzWelt"]
                ]
              },
              {
                label: "Regionales Wetter",
                items: [
                  ["Aktuell und Vorhersage", "RE_AktuellVorhersage"],
                  ["Unwetterwarnung", "RE_Unwetterwarnung"],
                  ["Regenradar aktuell", "RE_RegenradarAktuell"],
                  ["Regenradarprognose", "RE_RegenradarPrognose"]
                ]
              }
            ];
    
            menues.forEach(menu => {
              let menuElement = document.createXULElement('menu');
              menuElement.setAttribute('label', menu.label);
              let menuPopup = document.createXULElement('menupopup');
              menuElement.appendChild(menuPopup);
    
              menu.items.forEach(item => {
                let menuItem = document.createXULElement('menuitem');
                menuItem.setAttribute('label', item[0]);
                menuItem.addEventListener('command', () => {
                  const cfg = urlobj[item[1]];
                  openPanel(cfg.url, cfg.width, cfg.height);
                });
                menuPopup.appendChild(menuItem);
              });
    
              menupopup.appendChild(menuElement);
            });
    
            button.appendChild(menupopup);
            button.setAttribute('type', 'menu');
          }
        });
      } catch (e) { console.error(e); }
    
      // Event-Listener für Mausklicks hinzufügen
      (function add_button() {
        const button = document.getElementById(id);
        if (button) {
          button.addEventListener('click', (event) => {
            if (event.button === 0) {
              // Linksklick: Menü öffnen (automatisch)
            } else if (event.button === 1) {
              event.preventDefault();
              const cfg = urlobj['MO_Mittelklick'];
              openPanel(cfg.url, cfg.width, cfg.height);
            } else if (event.button === 2) {
              event.preventDefault();
              const cfg = urlobj['MO_Rechtsklick'];
              openPanel(cfg.url, cfg.width, cfg.height);
            }
          });
    
          button.addEventListener('dblclick', (event) => {
            event.preventDefault();
            const cfg = urlobj['MO_Doppelklick'];
            openPanel(cfg.url, cfg.width, cfg.height);
          });
        } else {
          setTimeout(add_button, 100);
        }
      })();
    
      // Größe über Stylesheet setzen
      function setIFrameSize(width, height) {
        let cssIn = `
          #wetterfuchs-panel vbox {
            width:  ${width}px !important;
            height: ${height}px !important;
          }
        `;
        let service = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
        let uri = makeURI('data:text/css;charset=UTF-8,' + encodeURIComponent(cssIn));
        if (!service.sheetRegistered(uri, service.AGENT_SHEET)) {
          service.loadAndRegisterSheet(uri, service.AGENT_SHEET);
        }
      }
    
      // Panel erstellen
      function createPanel() {
        let doc = document;
        let panel = doc.createXULElement('panel');
        panel.id = "wetterfuchs-panel";
        panel.setAttribute('noautohide', "false");
        panel.setAttribute('type', "arrow");
        panel.setAttribute('position', "after_end");
    
        panel.addEventListener('popuphiding', () => {
          clearPanel();
        });
    
        panel.addEventListener('mousedown', event => {
          if (event.button == 1) {
            openUrlFromPanel();
          }
        });
    
        let vbox = doc.createXULElement('vbox');
        vbox.setAttribute('flex', '1');
        panel.appendChild(vbox);
    
        let browser = doc.createXULElement('browser');
        browser.id = "wetterfuchs-iframe";
        browser.setAttribute('type', 'content');
        browser.setAttribute('flex', '1');
        browser.setAttribute('remote', 'true');
        browser.setAttribute('maychangeremoteness', 'true');
        browser.setAttribute('disableglobalhistory', 'true');
        browser.setAttribute('src', wfthrobber);
        vbox.appendChild(browser);
    
        doc.getElementById('mainPopupSet').appendChild(panel);
        return panel;
      }
    
      // Panel öffnen und URL laden
      function openPanel(url, width, height) {
        let panel  = document.getElementById("wetterfuchs-panel");
        let iframe = document.getElementById("wetterfuchs-iframe");
    
        if (!panel || !iframe) {
          panel  = createPanel();
          iframe = document.getElementById("wetterfuchs-iframe");
        }
    
        iframe.setAttribute("src", "about:blank");
    
        setTimeout(() => {
          setIFrameSize(width, height);
          iframe.setAttribute("src", url);
          panel.openPopup(
            document.getElementById("wetterfuchs-toolbarbutton"),
            "after_end"
          );
        }, 50);
      }
    
      // Panel zurücksetzen
      function clearPanel() {
        let myiframe = document.getElementById("wetterfuchs-iframe");
        if (!myiframe || !myiframe.parentNode) return;
        myiframe.parentNode.width = 146;
        myiframe.parentNode.height = 146;
        myiframe.setAttribute("src", wfthrobber);
      }
    
      // URL aus dem Panel in einem Tab öffnen
      function openUrlFromPanel() {
        let url = document.getElementById("wetterfuchs-iframe").getAttribute("src");
        openWebLinkIn(url, "tab");
        document.getElementById("wetterfuchs-panel").hidePopup();
      }
    
      // Sichtbarkeits-Handling: nach Minimieren/Zurückholen neu laden
      document.addEventListener("visibilitychange", function() {
        if (document.visibilityState === "visible") {
          let myiframe = document.getElementById("wetterfuchs-iframe");
          if (myiframe) {
            let currentUrl = myiframe.getAttribute("src");
            if (currentUrl && currentUrl !== "about:blank" && currentUrl !== wfthrobber) {
              myiframe.setAttribute("src", currentUrl);
            }
          }
        }
      });
    
      // Optional: regelmäßiges Auffrischen alle 30 Sekunden
      setInterval(function() {
        if (document.visibilityState === "visible") {
          let myiframe = document.getElementById("wetterfuchs-iframe");
          if (myiframe) {
            let currentUrl = myiframe.getAttribute("src");
            if (currentUrl && currentUrl !== "about:blank" && currentUrl !== wfthrobber) {
              myiframe.setAttribute("src", currentUrl);
            }
          }
        }
      }, 30000);
    
    })();
    Alles anzeigen


    Das Skript funktioniert auch ohne security.allow_unsafe_dangerous_privileged_evil_eval auf true zu setzen.
    Betätigen des Buttons mit linkem Doppelklick, Mittelklick und Linksklick öffnet ein Panel (Popup) mit entsprechenden Seiten.
    Das Menü, bzw. das Öffnen der entsprechenden Seiten im Panel (Popup) auch.

    Hoffe es ist so i.O.
    Wenn nicht, Bescheid geben, dann bearbeite ich noch einmal das originale Skript aus #1.115

  • Wetterfuchsbutton Script für userChrome.js

    • Mira_Belle
    • 7. Februar 2026 um 14:21
    Zitat von Endor

    Bitte mal testen.

    Da ist aber immer noch der Bug drinnen, der die Links im Menü einfach ignoriert!

    Und mal so auf die Schnelle.
    Was genau wurde geändert?
    Bzw. was war die Ursache, dass das Skript nicht wirklich so funktionierte wie angedacht?

    Frage!
    Hättest Du gerne einen Button, so wie in den anderen "Testskripten"?
    Und soll ich mich um den Bug kümmern?

  • Wetterfuchsbutton Script für userChrome.js

    • Mira_Belle
    • 7. Februar 2026 um 10:18
    Zitat von BrokenHeart

    Was die Ursache für dieses Problem ist, ...

    Danke für Deine Antwort.

    Keine Ahnung warum.
    Ich kam halt nur darauf, weil ^.
    Interessant ist ja, dass der "Fehler", also das nicht Anzeigen von Seiten nur auftritt,
    wenn diese entweder im Panel (Popup) dargestellt werden sollen,
    oder eben wenn "kleine" Fenster per window.open(... erzeugt werden.

    Nutzt man hingegen das Skript welches ein neues Fenster öffnet, oder
    auch bei meinem Test mit "in einem neuen Tab öffnen", trat dieser "Fehler" nie auf.

  • Wetterfuchsbutton Script für userChrome.js

    • Mira_Belle
    • 7. Februar 2026 um 09:31

    Sören Hentzschel Gehe ich richtig mit meiner Annahme?
    Dass der verbesserte Trackingschutz da aktiv wird und dazwischen grätscht,
    oder liege ich da total falsch und etwas anderes ist die Ursache?

    Auf den Trackingschutz kam ich nur, weil von Anfang an es in der Konsole Meldungen hagelt,
    dass dies, dass jenes nicht geladen werden könne.


    Hier mal einen Auszug.

    Code
    TypeError: can't access dead object 2 window-global.js:1995:30
    Laden fehlgeschlagen für das <script> mit der Quelle "https://consent.cookiebot.com/uc.js". berlin:5:192
    Uncaught ReferenceError: jQuery is not defined
        <anonymous> https://www.wetter.net//templates/wetternet/slick/slick.min.js:1
        <anonymous> https://www.wetter.net//templates/wetternet/slick/slick.min.js:1
    slick.min.js:1:152
    Layout-Darstellung wurde erzwungen, bevor die Seite vollständig geladen war. Falls Stylesheets noch nicht geladen sind, kann dies zu einer kurzzeitigen Darstellung des Inhalts ohne Formatierung führen. jquery.min.js:2:95756
    Laden fehlgeschlagen für das <script> mit der Quelle "https://script.ioam.de/iam.js". berlin:83:72
    Feature Policy: Unbekannte Funktionalität (Feature) "encrypted-media" wird ignoriert. 2 berlin
    Laden fehlgeschlagen für das <script> mit der Quelle "https://cdn.taboola.com/libtrc/qmetgmbh/loader.js". berlin:1:1
    Laden fehlgeschlagen für das <script> mit der Quelle "https://get.mirando.de/mirando.js#a=17624906&as=1&at=100". berlin:600:99
    TypeError: can't access dead object window-global.js:1995:30
    TypeError: can't access dead object window-global.js:1995:30
    Laden fehlgeschlagen für das <script> mit der Quelle "https://get.mirando.de/mirando.js#a=3132&as=1&at=3". bberlin:2169:93
    Laden fehlgeschlagen für das <script> mit der Quelle "https://d.nativendo.de/d/init". berlin:1:1
    downloadable font: download failed (font-family: "Source Sans Pro" style:normal weight:400 stretch:100 src index:0): status=2147746065 source: https://www.wetter.net/modules/mod_wetter_teaser/assets/fonts/SourceSansPro-Light.ttf
    Die Ressource auf "https://platform.twitter.com/widgets/widget_iframe.2f70fb173b9000da126c79afe2098f02.html?origin=https%3A%2F%2Fwww.wetter.net" wurde blockiert, weil der verbesserte Tracking-Schutz aktiviert ist. berlin
    downloadable font: download failed (font-family: "Source Sans Pro" style:normal weight:400 stretch:100 src index:0): status=2147746065 source: https://www.wetter.net/modules/mod_wetter_teaser/assets/fonts/SourceSansPro-Semibold.ttf
    downloadable font: download failed (font-family: "Source Sans Pro" style:normal weight:400 stretch:100 src index:0): status=2147746065 source: https://www.wetter.net/modules/mod_wetter_teaser/assets/fonts/SourceSansPro-Regular.ttf
    downloadable font: download failed (font-family: "Source Sans Pro" style:normal weight:400 stretch:100 src index:0): status=2147746065 source: https://www.wetter.net//components/com_weather/assets/fonts/SourceSansPro-Light.ttf
    downloadable font: download failed (font-family: "Source Sans Pro" style:normal weight:400 stretch:100 src index:0): status=2147746065 source: https://www.wetter.net//components/com_weather/assets/fonts/SourceSansPro-Semibold.ttf
    downloadable font: download failed (font-family: "Source Sans Pro" style:normal weight:400 stretch:100 src index:0): status=2147746065 source: https://www.wetter.net//components/com_weather/assets/fonts/SourceSansPro-Regular.ttf
    No active tab found from getActiveTab
    Alles anzeigen
  • Wetterfuchsbutton Script für userChrome.js

    • Mira_Belle
    • 7. Februar 2026 um 06:02

    1. Die Schlafstörungen haben mal wieder zugeschlagen!
    2. Der Scheiß ließ mir keine Ruh'!

    Also es gibt ja mehrere Möglichkeiten sich die Wetterinfos anzeigen zu lassen!
    1. Möglichkeit, in einem Panel (Popup)
    2. Möglichkeit, per window.open(... (ein neues Fenster im gleichen Prozess)

    Jedoch in beiden Fällen schlägt Firefox verbesserter Trackingschutz zu und die Seiten werden blockiert
    und somit eben nicht mehr angezeigt!
    Hatten wir alles schon!

    3. Möglichkeit, wir umgehen das alles und öffnen ein ganz neues Fenster! (Neuer Prozess!)
    Da sind dann zwar alle Toolbars vorhanden und man muss diese Fenster, wenn nicht mehr gebraucht,
    manuell schließen, aber die Seiten werden IMMER geladen!
    Auch lässt sich die Größe des neuen Fensters beim Öffnen nicht mehr beeinflussen.
    Schade, ist aber so!


    JavaScript
    // ==UserScript==
    // @name           wetterfuchsbutton.uc.js
    // @compatibility  Firefox 147+
    // @include        main
    // @note           by mira + OpenWith-Logik
    // ==/UserScript==
    
    (function() {
      "use strict";
    
      if (!window.gBrowser)
        return;
      if (location != "chrome://browser/content/browser.xhtml")
        return;
    
      const
      // ■■ START UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
               id = 'wetterfuchs-toolbarbutton',        // Id des Buttons
            label = 'Wetterfuchs',                      // Bezeichnung des Buttons
      tooltiptext = 'Lokale und globale Wetter Infos',  // Anzeige
      // Icon-------------------------------------------------------
             icon = 'Wetter.png',                       // [Name.Dateiendung] des Symbols
         iconPath = '/chrome/image/',                   // Pfad zum Ordner der das Icon beinhaltet
      // ■■ END UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
       curProfDir = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir)),
    
      // öffnet neue Instanz, neues Fenster im aktuellen Profil
      WetterBrowserPath = {
        new:  "C:\\Program Files\\Mozilla Firefox\\firefox.exe<>-new-window $1 -foreground",
      },
    
      // ■■ urlobj-Array ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
      urlobj = {
        MO_Doppelklick:           {url:"https://www.msn.com/de-de/wetter/heute/de/Berlin,BE,Deutschland/we-city-52.520,13.380",width:700,height:640},
        MO_Rechtsklick:           {url:"http://www.wetter.net/47/Berlin",width:850,height:630},
        MO_Mittelklick:           {url:"https://www.daswetter.com/wetter_Berlin-Europa-Deutschland-Berlin--1-26301.html",width:800,height:638},
        DED_WetterAktuell:        {url:"https://www.wetterkontor.de/de/deutschland_aktuell.asp?id=0&page=0&sort=0",width:625,height:865},
        DED_Vorhersage:           {url:"https://www.wetterkontor.de/de/wetter/deutschland.asp",width:670,height:780},
    	  DED_Wetterlage:           {url:"https://www.wetterkontor.de/de/wetterlage.asp",width:430,height:405},
        DED_Pollenbelastung:      {url:"https://www.wetterkontor.de/de/bio/pollenflug-erle.asp",width:560,height:730},
        DED_UVIndexVorhersage:    {url:"https://www.wetterkontor.de/de/bio/uv-index.asp",width:478,height:720},
    	  DED_Gesund:               {url:"https://www.wetterkontor.de/de/bio/befinden-und-gesundheit.asp?id=1",width:572,height:565},
    	  DED_Therm:                {url:"https://www.wetterkontor.de/de/bio/thermische-belastung.asp",width:572,height:565},
    	  DED_Flusspegel:           {url:"https://www.wetterkontor.de/de/pegel/",width:670,height:792},
    	  DED_Regenradar:           {url:"https://www.wetterkontor.de/de/radar.asp?p=1",width:532,height:575},
        DED_RegenradarVorhersage: {url:"https://www.wetterkontor.de/de/radar/radar-vorhersage.asp?p=1",width:528,height:570},
    	  DED_Satellitenbild:       {url:"https://www.austrocontrol.at/jart/met/radar/satloop.gif",width:620,height:470},
    	  DED_BlitzMittel:          {url:"https://map.blitzortung.org/#5.34/51.978/10.499",width:740,height:740},
    	  DED_BlitzEuro:            {url:"https://map.blitzortung.org/#5.25/50.48/11.333",width:740,height:740},
    	  DED_BlitzWelt:            {url:"https://map.blitzortung.org/#1.37/43.3/21.9",width:940,height:678},
        DE_WetterAktuell:         {url:"https://www.dwd.de/DWD/wetter/aktuell/deutschland/bilder/wx_deutschland.jpg",width:780,height:520},
        DE_Vorhersage:            {url:"https://www.dwd.de/DWD/wetter/wv_allg/deutschland/film/vhs_deutschland.jpg",width:780,height:485},
        DE_Unwetterwarnung:       {url:"http://www.unwetterzentrale.de/images/map/deutschland_index.png",width:572,height:572},
        DE_RegenradarAktuell:     {url:"https://www.niederschlagsradar.de/de-de",width:570,height:650},
        DE_RegenradarPrognose:    {url:"https://www.windy.com/de/-Regen-Gewitter-rain?rain,50.723,10.525,7",width:620,height:690},
        EU_AktuellVorhersage:     {url:"https://www.wetterkontor.de/de/wetter/europa/",width:680,height:690},
        EU_Unwetterwarnung:       {url:"http://www.unwetterzentrale.de/images/map/europe_index.png",width:572,height:572},
        EU_RegenradarAktuell:     {url:"https://www.niederschlagsradar.de/de-de/continent/eu",width:570,height:670},
        EU_RegenradarPrognose:    {url:"https://www.wetteronline.de/regenradar/europa?wro=true",width:660,height:700},
        WE_WetterAktuell:         {url:"https://www.wetterdienst.de/Weltwetter/Beobachtungen/Aktuell/Nordamerika/",width:660,height:690},
    	  WE_WetterVorhersage:      {url:"https://wetter.faz.net/reisewetter/",width:660,height:700},
        RE_AktuellVorhersage:     {url:"https://www.wetterkontor.de/de/wetter/deutschland/brandenburg-berlin.asp",width:675,height:640},
        RE_Unwetterwarnung:       {url:"https://www.wetterkontor.de/warnungen/wetterwarnungen-brandenburg-berlin.asp",width:850,height:560},
        RE_RegenradarAktuell:     {url:"https://www.wetterkontor.de/de/radar/radar-nordost.asp",width:568,height:530},
        RE_RegenradarPrognose:    {url: "https://www.wetteronline.de/regenradar/berlin-bundesland?mode=interactive&wrx=50.16,8.77&wrm=8", width: 850, height: 850},
      };
      // ■■ END Arrey ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    
      if (Services.prefs.getBoolPref('svg.context-properties.content.enabled') == false) {
        Services.prefs.setBoolPref('svg.context-properties.content.enabled', true);
      }
    
      // Button erstellen
      try {
        CustomizableUI.createWidget({
          id: id,
          defaultArea: CustomizableUI.AREA_NAVBAR,
          label: label,
          tooltiptext: tooltiptext,
          onCreated: (button) => {
            button.style.MozContextProperties = "fill, stroke, fill-opacity";
            button.style.listStyleImage = 'url("' + curProfDir + iconPath + icon + '")';
            button.style.minWidth = "fit-content";
    
            let menupopup = document.createXULElement("menupopup");
            menupopup.id = "wetterfuchs-menupopup";
    
            const menues = [
              {
                label: "DE Wetterdaten",
                items: [
                  ["Wetter aktuell", "DED_WetterAktuell"],
                  ["Vorhersage", "DED_Vorhersage"],
                  ["Pollenbelastung", "DED_Pollenbelastung"],
                  ["UV-Index", "DED_UVIndexVorhersage"],
                  ["Gesund. Beschwerden", "DED_Gesund"],
                  ["Thermische Belastung", "DED_Therm"],
                  ["Wetterlage", "DED_Wetterlage"],
                  ["Flusspegel", "DED_Flusspegel"],
                  ["Regenradar", "DED_Regenradar"],
                  ["Regenradar Vorhersage", "DED_RegenradarVorhersage"],
                  ["Satellitenbild", "DED_Satellitenbild"],
                ],
              },
              {
                label: "DE Wetterkarten",
                items: [
                  ["Wetter aktuell", "DE_WetterAktuell"],
                  ["Vorhersage", "DE_Vorhersage"],
                  ["Unwetterwarnung", "DE_Unwetterwarnung"],
                  ["Regenradar aktuell", "DE_RegenradarAktuell"],
                  ["Regenradarprognose", "DE_RegenradarPrognose"],
                ],
              },
              {
                label: "EU Wetter",
                items: [
                  ["Aktuell und Vorhersage", "EU_AktuellVorhersage"],
                  ["Unwetterwarnung", "EU_Unwetterwarnung"],
                  ["Regenradar aktuell", "EU_RegenradarAktuell"],
                  ["Regenradarprognose", "EU_RegenradarPrognose"],
                ],
              },
              {
                label: "Welt Wetter",
                items: [
                  ["Aktuell", "WE_WetterAktuell"],
                  ["Vorhersage", "WE_WetterVorhersage"],
                ],
              },
              {
                label: "Blitzortung",
                items: [
                  ["Mitteleuropa", "DED_BlitzMittel"],
                  ["Europa", "DED_BlitzEuro"],
                  ["Welt", "DED_BlitzWelt"],
                ],
              },
              {
                label: "Regionales Wetter",
                items: [
                  ["Aktuell und Vorhersage", "RE_AktuellVorhersage"],
                  ["Unwetterwarnung", "RE_Unwetterwarnung"],
                  ["Regenradar aktuell", "RE_RegenradarAktuell"],
                  ["Regenradarprognose", "RE_RegenradarPrognose"],
                ],
              },
            ];
    
            menues.forEach(menu => {
              let menuElement = document.createXULElement("menu");
              menuElement.setAttribute("label", menu.label);
              let menuPopup = document.createXULElement("menupopup");
              menuElement.appendChild(menuPopup);
    
              menu.items.forEach(item => {
                let menuItem = document.createXULElement("menuitem");
                menuItem.setAttribute("label", item[0]);
                menuItem.addEventListener("command", () => {
                  const cfg = urlobj[item[1]];
                  openInNewInstance(cfg);
                });
                menuPopup.appendChild(menuItem);
              });
    
              menupopup.appendChild(menuElement);
            });
    
            button.appendChild(menupopup);
            button.setAttribute("type", "menu");
          },
        });
      } catch (e) {
        console.error("Wetterfuchs: Fehler beim Erstellen des Buttons", e);
      }
    
      // Pfad<>Args splitten, $1 durch URL ersetzen, Prozess starten
      function launchExternal(browserPath, openURL) {
        let [path, args] = browserPath.split("<>");
        if (args) {
          args = args.split(" ").map(a => a.replace("$1", openURL));
        } else {
          args = [openURL];
        }
    
        const file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
        file.initWithPath(path);
    
        const process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
        process.init(file);
        process.run(false, args, args.length, {});
      }
    
      // Wetterseite in neuer Instanz öffnen
      function openInNewInstance(cfg) {
        if (!cfg || !cfg.url) {
          console.error("Wetterfuchs: cfg oder cfg.url fehlt", cfg);
          return;
        }
        const browserPath = WetterBrowserPath.new;
        launchExternal(browserPath, cfg.url);
      }
    
      // Klick-Handler: Mittel-/Rechtsklick & Doppelklick → neue Instanz
      (function add_button() {
        const button = document.getElementById(id);
        if (button) {
          button.addEventListener("click", (event) => {
            if (event.button === 0) {
              // Linksklick: Menü
            } else if (event.button === 1) {
              event.preventDefault();
              const cfg = urlobj["MO_Mittelklick"];
              openInNewInstance(cfg);
            } else if (event.button === 2) {
              event.preventDefault();
              const cfg = urlobj["MO_Rechtsklick"];
              openInNewInstance(cfg);
            }
          });
    
          button.addEventListener("dblclick", (event) => {
            event.preventDefault();
            const cfg = urlobj["MO_Doppelklick"];
            openInNewInstance(cfg);
          });
        } else {
          setTimeout(add_button, 100);
        }
      })();
    
    })();
    Alles anzeigen

    Eventuell kann man ja mit dem CSS die Seiten noch etwas verschönern?

  • Verwendung von Firefox Translations funktioniert nicht

    • Mira_Belle
    • 6. Februar 2026 um 23:19

    Und schon etwas älter!

    Mate Translate – Übersetzer, Wörterbuch – Holen Sie sich diese Erweiterung für 🦊 Firefox (de)
    Laden Sie Mate Translate – Übersetzer, Wörterbuch für Firefox herunter. Ultimativer Übersetzer für Webseiten, ausgewählten Text und Netflix-Untertiteln. 103…
    addons.mozilla.org
  • Wetterfuchsbutton Script für userChrome.js

    • Mira_Belle
    • 6. Februar 2026 um 22:20

    Test abgeschlossen!

    Es hat mit dem verbesserten Tracking-Schutz im Firefox zu tun, dass die Seiten im Panel nicht nach geladen werden.

    Wie man das um gehen kann, und ob, da bin ich echt überfragt!
    Da ich das Skript nicht nutze, es war nur eine Herausforderung, mache ich jetzt hier an dieser Stelle aber Schluß.

    Wer mit meinem neuen Skript etwas spielen will, ....

    JavaScript
    // ==UserScript==
    // @name           wetterfuchsbutton.uc.js
    // @compatibility  Firefox 147+
    // @include        main
    // @note           by mira with help from www.perplexity.ai and chat.mistral.ai
    // @note           completely rewritten on February 6, 2026
    // @version        1.0.
    // ==/UserScript==
    
    (function() {
      if (!window.gBrowser)
        return;
    
      const
      // ■■ START UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
               id = 'wetterfuchs-toolbarbutton', // Id des Buttons
            label = 'Wetterfuchs', // Bezeichnung des Buttons
      tooltiptext = 'Lokale und globale Wetter Infos',
      // Icon-------------------------------------------------------
             icon = 'Wetter.png',  // [Name.Dateiendung] des Symbols
         iconPath = '/chrome/image/', // Pfad zum Ordner der das Icon beinhaltet
      // ■■ END UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
       curProfDir = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir)),
    
      // kleines Lade-GIF als Platzhalter
       wfthrobber = "https://raw.github.com/ardiman/userChrome.js/master/wetterfuchsbutton/loading51.gif",
    
      // ■■ urlobj-Array ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
      urlobj = {
        MO_Doppelklick:           {url:"https://www.msn.com/de-de/wetter/heute/de/Berlin,BE,Deutschland/we-city-52.520,13.380",width:700,height:640},
        MO_Rechtsklick:           {url:"http://www.wetter.net/47/Berlin",width:850,height:630},
        MO_Mittelklick:           {url:"https://www.daswetter.com/wetter_Berlin-Europa-Deutschland-Berlin--1-26301.html",width:800,height:638},
        DED_WetterAktuell:        {url:"https://www.wetterkontor.de/de/deutschland_aktuell.asp?id=0&page=0&sort=0",width:625,height:865},
        DED_Vorhersage:           {url:"https://www.wetterkontor.de/de/wetter/deutschland.asp",width:670,height:780},
    	  DED_Wetterlage:           {url:"https://www.wetterkontor.de/de/wetterlage.asp",width:430,height:405},
        DED_Pollenbelastung:      {url:"https://www.wetterkontor.de/de/bio/pollenflug-erle.asp",width:560,height:730},
        DED_UVIndexVorhersage:    {url:"https://www.wetterkontor.de/de/bio/uv-index.asp",width:478,height:720},
    	  DED_Gesund:               {url:"https://www.wetterkontor.de/de/bio/befinden-und-gesundheit.asp?id=1",width:572,height:565},
    	  DED_Therm:                {url:"https://www.wetterkontor.de/de/bio/thermische-belastung.asp",width:572,height:565},
    	  DED_Flusspegel:           {url:"https://www.wetterkontor.de/de/pegel/",width:670,height:792},
    	  DED_Regenradar:           {url:"https://www.wetterkontor.de/de/radar.asp?p=1",width:532,height:575},
        DED_RegenradarVorhersage: {url:"https://www.wetterkontor.de/de/radar/radar-vorhersage.asp?p=1",width:528,height:570},
    	  DED_Satellitenbild:       {url:"https://www.austrocontrol.at/jart/met/radar/satloop.gif",width:620,height:470},
    	  DED_BlitzMittel:          {url:"https://map.blitzortung.org/#5.34/51.978/10.499",width:740,height:740},
    	  DED_BlitzEuro:            {url:"https://map.blitzortung.org/#5.25/50.48/11.333",width:740,height:740},
    	  DED_BlitzWelt:            {url:"https://map.blitzortung.org/#1.37/43.3/21.9",width:940,height:678},
        DE_WetterAktuell:         {url:"https://www.dwd.de/DWD/wetter/aktuell/deutschland/bilder/wx_deutschland.jpg",width:780,height:520},
        DE_Vorhersage:            {url:"https://www.dwd.de/DWD/wetter/wv_allg/deutschland/film/vhs_deutschland.jpg",width:780,height:485},
        DE_Unwetterwarnung:       {url:"http://www.unwetterzentrale.de/images/map/deutschland_index.png",width:572,height:572},
        DE_RegenradarAktuell:     {url:"https://www.niederschlagsradar.de/de-de",width:570,height:650},
        DE_RegenradarPrognose:    {url:"https://www.windy.com/de/-Regen-Gewitter-rain?rain,50.723,10.525,7",width:620,height:690},
        EU_AktuellVorhersage:     {url:"https://www.wetterkontor.de/de/wetter/europa/",width:680,height:690},
        EU_Unwetterwarnung:       {url:"http://www.unwetterzentrale.de/images/map/europe_index.png",width:572,height:572},
        EU_RegenradarAktuell:     {url:"https://www.niederschlagsradar.de/de-de/continent/eu",width:570,height:670},
        EU_RegenradarPrognose:    {url:"https://www.wetteronline.de/regenradar/europa?wro=true",width:660,height:700},
        WE_WetterAktuell:         {url:"https://www.wetterdienst.de/Weltwetter/Beobachtungen/Aktuell/Nordamerika/",width:660,height:690},
    	  WE_WetterVorhersage:      {url:"https://wetter.faz.net/reisewetter/",width:660,height:700},
        RE_AktuellVorhersage:     {url:"https://www.wetterkontor.de/de/wetter/deutschland/brandenburg-berlin.asp",width:675,height:640},
        RE_Unwetterwarnung:       {url:"https://www.wetterkontor.de/warnungen/wetterwarnungen-brandenburg-berlin.asp",width:850,height:560},
        RE_RegenradarAktuell:     {url:"https://www.wetterkontor.de/de/radar/radar-nordost.asp",width:568,height:530},
        RE_RegenradarPrognose:    {url: "https://www.wetteronline.de/regenradar/berlin-bundesland?mode=interactive&wrx=50.16,8.77&wrm=8", width: 850, height: 850},
      };
      // ■■ END Arrey ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
      if (Services.prefs.getBoolPref('svg.context-properties.content.enabled') == false) {
        Services.prefs.setBoolPref('svg.context-properties.content.enabled', true);
      }
    
      // Button erstellen
      try {
        CustomizableUI.createWidget({
          id: id,
          defaultArea: CustomizableUI.AREA_NAVBAR,
          label: label,
          tooltiptext: tooltiptext,
          onCreated: (button) => {
            button.style.MozContextProperties = 'fill, stroke, fill-opacity';
            button.style.listStyleImage = 'url("' + curProfDir + iconPath + icon + '")';
            button.style.minWidth = 'fit-content';
    
            // Menü hinzufügen
            let menupopup = document.createXULElement('menupopup');
            menupopup.id = 'wetterfuchs-menupopup';
    
            const menues = [
              {
                label: "DE Wetterdaten",
                items: [
                  ["Wetter aktuell", "DED_WetterAktuell"],
                  ["Vorhersage", "DED_Vorhersage"],
                  ["Pollenbelastung", "DED_Pollenbelastung"],
                  ["UV-Index", "DED_UVIndexVorhersage"],
                  ["Gesund. Beschwerden", "DED_Gesund"],
                  ["Thermische Belastung", "DED_Therm"],
                  ["Wetterlage", "DED_Wetterlage"],
                  ["Flusspegel", "DED_Flusspegel"],
                  ["Regenradar", "DED_Regenradar"],
                  ["Regenradar Vorhersage", "DED_RegenradarVorhersage"],
                  ["Satellitenbild", "DED_Satellitenbild"]
                ]
              },
              {
                label: "DE Wetterkarten",
                items: [
                  ["Wetter aktuell", "DE_WetterAktuell"],
                  ["Vorhersage", "DE_Vorhersage"],
                  ["Unwetterwarnung", "DE_Unwetterwarnung"],
                  ["Regenradar aktuell", "DE_RegenradarAktuell"],
                  ["Regenradarprognose", "DE_RegenradarPrognose"]
                ]
              },
              {
                label: "EU Wetter",
                items: [
                  ["Aktuell und Vorhersage", "EU_AktuellVorhersage"],
                  ["Unwetterwarnung", "EU_Unwetterwarnung"],
                  ["Regenradar aktuell", "EU_RegenradarAktuell"],
                  ["Regenradarprognose", "EU_RegenradarPrognose"]
                ]
              },
              {
                label: "Welt Wetter",
                items: [
                  ["Aktuell", "WE_WetterAktuell"],
                  ["Vorhersage", "WE_WetterVorhersage"]
                ]
              },
              {
                label: "Blitzortung",
                items: [
                  ["Mitteleuropa", "DED_BlitzMittel"],
                  ["Europa", "DED_BlitzEuro"],
                  ["Welt", "DED_BlitzWelt"]
                ]
              },
              {
                label: "Regionales Wetter",
                items: [
                  ["Aktuell und Vorhersage", "RE_AktuellVorhersage"],
                  ["Unwetterwarnung", "RE_Unwetterwarnung"],
                  ["Regenradar aktuell", "RE_RegenradarAktuell"],
                  ["Regenradarprognose", "RE_RegenradarPrognose"]
                ]
              }
            ];
    
            menues.forEach(menu => {
              let menuElement = document.createXULElement('menu');
              menuElement.setAttribute('label', menu.label);
              let menuPopup = document.createXULElement('menupopup');
              menuElement.appendChild(menuPopup);
    
              menu.items.forEach(item => {
                let menuItem = document.createXULElement('menuitem');
                menuItem.setAttribute('label', item[0]);
                menuItem.addEventListener('command', () => {
                  const cfg = urlobj[item[1]];
                  openPanel(cfg.url, cfg.width, cfg.height);
                });
                menuPopup.appendChild(menuItem);
              });
    
              menupopup.appendChild(menuElement);
            });
    
            button.appendChild(menupopup);
            button.setAttribute('type', 'menu');
          }
        });
      } catch (e) { console.error(e); }
    
      // Event-Listener für Mausklicks hinzufügen
      (function add_button() {
        const button = document.getElementById(id);
        if (button) {
          button.addEventListener('click', (event) => {
            if (event.button === 0) {
              // Linksklick: Menü öffnen (automatisch)
            } else if (event.button === 1) {
              event.preventDefault();
              const cfg = urlobj['MO_Mittelklick'];
              openPanel(cfg.url, cfg.width, cfg.height);
            } else if (event.button === 2) {
              event.preventDefault();
              const cfg = urlobj['MO_Rechtsklick'];
              openPanel(cfg.url, cfg.width, cfg.height);
            }
          });
    
          button.addEventListener('dblclick', (event) => {
            event.preventDefault();
            const cfg = urlobj['MO_Doppelklick'];
            openPanel(cfg.url, cfg.width, cfg.height);
          });
        } else {
          setTimeout(add_button, 100);
        }
      })();
    
      // Größe über Stylesheet setzen (wie im funktionierenden Script)
      function setIFrameSize(width, height) {
        let cssIn = `
          #wetterfuchs-panel vbox {
            width:  ${width}px !important;
            height: ${height}px !important;
          }
        `;
        let service = Cc['@mozilla.org/content/style-sheet-service;1']
                        .getService(Ci.nsIStyleSheetService);
        let uri = makeURI('data:text/css;charset=UTF-8,' + encodeURIComponent(cssIn));
        if (!service.sheetRegistered(uri, service.AGENT_SHEET)) {
          service.loadAndRegisterSheet(uri, service.AGENT_SHEET);
        }
      }
    
      // Panel erstellen
      function createPanel() {
        let panel = document.createXULElement('panel');
        panel.id = "wetterfuchs-panel";
        panel.setAttribute('noautohide', "false");
        panel.setAttribute('type', "arrow");
        panel.setAttribute('position', "after_end");
    
        let vbox = document.createXULElement('vbox');
        vbox.setAttribute('flex', '1');
        panel.appendChild(vbox);
    
        let browser = document.createXULElement('browser');
        browser.id = "wetterfuchs-iframe";
        browser.setAttribute('type', 'content');
        browser.setAttribute('flex', '1');
        browser.setAttribute('remote', 'true');      // wichtig
        browser.setAttribute('src', wfthrobber);     // erstmal Throbber
        vbox.appendChild(browser);
    
        document.getElementById('mainPopupSet').appendChild(panel);
        return panel;
      }
    
      // Panel öffnen und URL laden
      function openPanel(url, width, height) {
        let panel  = document.getElementById("wetterfuchs-panel");
        let iframe = document.getElementById("wetterfuchs-iframe");
    
        if (!panel || !iframe) {
          panel  = createPanel();
          iframe = document.getElementById("wetterfuchs-iframe");
        }
    
        // Größe setzen
        setIFrameSize(width, height);
    
        // Panel öffnen
        panel.openPopup(
          document.getElementById("wetterfuchs-toolbarbutton"),
          "after_end"
        );
    
        // Erst leeren …
        iframe.setAttribute('src', "about:blank");
    
        // … dann mit kleiner Verzögerung Ziel-URL setzen
        setTimeout(() => {
          let frame = document.getElementById("wetterfuchs-iframe");
          if (!frame) return;
          frame.setAttribute("src", url);
        }, 100);
      }
    
      // Sichtbarkeits-Handling: nach Minimieren/Zurückholen neu laden
      document.addEventListener("visibilitychange", function() {
        if (document.visibilityState === "visible") {
          let myiframe = document.getElementById("wetterfuchs-iframe");
          if (myiframe) {
            let currentUrl = myiframe.getAttribute("src");
            if (currentUrl && currentUrl !== "about:blank" && currentUrl !== wfthrobber) {
              myiframe.setAttribute("src", currentUrl);
            }
          }
        }
      });
    
      // Optional: regelmäßiges Auffrischen alle 30 Sekunden
      setInterval(function() {
        if (document.visibilityState === "visible") {
          let myiframe = document.getElementById("wetterfuchs-iframe");
          if (myiframe) {
            let currentUrl = myiframe.getAttribute("src");
            if (currentUrl && currentUrl !== "about:blank" && currentUrl !== wfthrobber) {
              myiframe.setAttribute("src", currentUrl);
            }
          }
        }
      }, 30000);
    
    })();
    Alles anzeigen
  • Wetterfuchsbutton Script für userChrome.js

    • Mira_Belle
    • 6. Februar 2026 um 21:55

    Endor
    Also, ich haben mal ein ganz neues Skript gebaut und ausgiebig getestet.
    Auch bei diesem werden die Seiten nach einer Weile nicht mehr geladen (angezeigt).

    Ich hege einen Verdacht!

    Dem werde ich jetzt mal mit Deinem Skript nachgehen und dann berichten!

  • Wetterfuchsbutton Script für userChrome.js

    • Mira_Belle
    • 5. Februar 2026 um 21:47

    Sorry, nun gehen mir die Ideen aus.
    Weiß nicht wie ich das noch erklären soll, damit die KI eventuell etwas Brauchbares auswirft!

    Was mir aufgefallen ist, gerät der Firefox in den Hintergrund, oder wird er auch nur kurz minimiert, hängt das Skript.

  • Wetterfuchsbutton Script für userChrome.js

    • Mira_Belle
    • 5. Februar 2026 um 21:26

    Himmel grrrr.
    Das gibt es doch gar nicht!
    Sieben, acht oder mehr ...
    und jetzt hängt es wieder!

  • Wetterfuchsbutton Script für userChrome.js

    • Mira_Belle
    • 5. Februar 2026 um 21:09

    Ob es jetzt läuft?
    Bisher klappt es!

    JavaScript
    // ==UserScript==
    // @name           wetterfuchsbutton.uc.js
    // @compatibility  Firefox 147+
    // @include        main
    // @note           by mira with help from www.perplexity.ai
    // @version        1.0.20260205
    // ==/UserScript==
    
    var wetterfuchs = {
    
      urlobj: {
        MO_Doppelklick: {url:"https://www.msn.com/de-de/wetter/heute/de/Berlin,BE,Deutschland/we-city-52.520,13.380",width:700,height:640},
        MO_Rechtsklick: {url:"http://www.wetter.net/47/Berlin",width:850,height:630},
        MO_Mittelklick: {url:"https://www.daswetter.com/wetter_Berlin-Europa-Deutschland-Berlin--1-26301.html",width:800,height:638},
        DED_WetterAktuell: {url:"https://www.wetterkontor.de/de/deutschland_aktuell.asp?id=0&page=0&sort=0",width:625,height:865},
        DED_Vorhersage: {url:"https://www.wetterkontor.de/de/wetter/deutschland.asp",width:670,height:780},
    	  DED_Wetterlage: {url:"https://www.wetterkontor.de/de/wetterlage.asp",width:430,height:405},
        DED_Pollenbelastung: {url:"https://www.wetterkontor.de/de/bio/pollenflug-erle.asp",width:560,height:730},
        DED_UVIndexVorhersage: {url:"https://www.wetterkontor.de/de/bio/uv-index.asp",width:478,height:720},
    	  DED_Gesund: {url:"https://www.wetterkontor.de/de/bio/befinden-und-gesundheit.asp?id=1",width:572,height:565},
    	  DED_Therm: {url:"https://www.wetterkontor.de/de/bio/thermische-belastung.asp",width:572,height:565},
    	  DED_Flusspegel: {url:"https://www.wetterkontor.de/de/pegel/",width:670,height:792},
    	  DED_Regenradar: {url:"https://www.wetterkontor.de/de/radar.asp?p=1",width:532,height:575},
        DED_RegenradarVorhersage: {url:"https://www.wetterkontor.de/de/radar/radar-vorhersage.asp?p=1",width:528,height:570},
    	  DED_Satellitenbild: {url:"https://www.austrocontrol.at/jart/met/radar/satloop.gif",width:620,height:470},
    	  DED_BlitzMittel: {url:"https://map.blitzortung.org/#5.34/51.978/10.499",width:740,height:740},
    	  DED_BlitzEuro: {url:"https://map.blitzortung.org/#5.25/50.48/11.333",width:740,height:740},
    	  DED_BlitzWelt: {url:"https://map.blitzortung.org/#1.37/43.3/21.9",width:940,height:678},
        DE_WetterAktuell: {url:"https://www.dwd.de/DWD/wetter/aktuell/deutschland/bilder/wx_deutschland.jpg",width:780,height:520},
        DE_Vorhersage: {url:"https://www.dwd.de/DWD/wetter/wv_allg/deutschland/film/vhs_deutschland.jpg",width:780,height:485},
        DE_Unwetterwarnung: {url:"http://www.unwetterzentrale.de/images/map/deutschland_index.png",width:572,height:572},
        DE_RegenradarAktuell: {url:"https://www.niederschlagsradar.de/de-de",width:570,height:650},
        DE_RegenradarPrognose: {url:"https://www.windy.com/de/-Regen-Gewitter-rain?rain,50.723,10.525,7",width:620,height:690},
        EU_AktuellVorhersage: {url:"https://www.wetterkontor.de/de/wetter/europa/",width:680,height:690},
        EU_Unwetterwarnung: {url:"http://www.unwetterzentrale.de/images/map/europe_index.png",width:572,height:572},
        EU_RegenradarAktuell: {url:"https://www.niederschlagsradar.de/de-de/continent/eu",width:570,height:670},
        EU_RegenradarPrognose: {url:"https://www.wetteronline.de/regenradar/europa?wro=true",width:660,height:700},
        WE_WetterAktuell: {url:"https://www.wetterdienst.de/Weltwetter/Beobachtungen/Aktuell/Nordamerika/",width:660,height:690},
    	  WE_WetterVorhersage: {url:"https://wetter.faz.net/reisewetter/",width:660,height:700},
        RE_AktuellVorhersage: {url:"https://www.wetterkontor.de/de/wetter/deutschland/brandenburg-berlin.asp",width:675,height:640},
        RE_Unwetterwarnung: {url:"https://www.wetterkontor.de/warnungen/wetterwarnungen-brandenburg-berlin.asp",width:850,height:560},
        RE_RegenradarAktuell: {url:"https://www.wetterkontor.de/de/radar/radar-nordost.asp",width:568,height:530},
        RE_RegenradarPrognose: {url:"https://www.wetteronline.de/regenradar/berlin-bundesland?mode=interactive&wrx=52.51,13.41&wrm=8",width:850,height:850},
      },
    
      wfthrobber: "https://raw.github.com/ardiman/userChrome.js/master/wetterfuchsbutton/loading51.gif",
      // alternativ z.B. wfthrobber: "chrome://global/skin/media/throbber.png"
    
      createBtn: function() {
        try {
          CustomizableUI.createWidget({
            id: 'wetterfuchs-toolbarbutton',
            type: 'custom',
            onBuild: function(aDocument) {
              var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
              var attributes = {
                id: 'wetterfuchs-toolbarbutton',
                class: 'chromeclass-toolbar-additional',
                type: 'menu',
                removable: 'true',
                label: 'Wetterfuchs',
                tooltiptext: 'Lokale und globale Wetter Infos',
                style: 'list-style-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAD+0lEQVQ4jb3Tf0zUZRwH8LdgEngngitiMVBXcxH4h+lmETndkqVIOYemrewH4ipJmCjmmDLJRmrKBkPgMNYSMYNN3cQ1YoG4ovjpwQEnX+644ziP7/fbHd9z4SnH8+4PxXIWtLX13j7bsz17Xtvz+TwP8H9lfXx02NT62HJd3JHlurgHe9GhYX9/appkx+k31m0JKtEBzzdlLLz08+6FlxcAz9VtCi7JjtNv/NfQ60sXJQJA/VocutVx6I77+9fGbl/fNeG7nu53X355zNu89W5DSkA+AGyIj1o1I1i1KtQglyzn2MUk/+TNYgq1nEIuohg9TuHK56Qtg2PfxftdJ2L4zStzK6azHgOwoDNRf9Q/kEPeqiJ/MwiqZaRSQsqFpOswhSNL0PEeJ9pXsDVBd1IH3ZMA5jyiFSwOWt//2eIfTF+lyt3XjrCvrZjjN0vJsQpSOUbezCQdH5D2N0nrBk6aYun5+nHF+KmusXDJ/JRHwI7UrS9WH05TW1quUZLMorOjlacNp9j/ay7p2kmquyhGd5HOHeTwNgrLq0J0hfPGhyE9BUA0gICHwIq8vNy2tva7DoeDZrOZNTU1rK6uZl1dPc+fr+HF2uOUBw9SKPtJ18fk8FZOGqPYsy34l1Ig9iEwBogs+uLzVpPJRIvFIoxGIxsaGihJEm02G212O43dfaysrKC9L4/05JDOHRTmeKHVzOaVJH1tInRPTHmBGe9v3/NTc/P40NAQrVYrJUni4ODgPcxm4/DwMB0OBzs6Onm2qpAj/bmcdKZTmBbRtD2o80pw4MZ9gB4AkJaWFnHhwoU7qqrS6XSKkZGRB5DL5aIsy1QUhaqq0uVycWBggF1d7aLlx+OcuB4hpMwQaz6w5P4rAVJSUhJ6e3vpdrupKAplWaYkSTSZTJRlmZqm0ev10uv1UtM0jo+P0+fzcXBIFj1nEiekzBDnt0vnffKgfytXrlxWX1/v93g8dLvdtFqt7O7uFhaLhXa7nYqiUNM0appGVVXp8/mE3+/nrdvjrMrY214FJJUBkX8dSkRycvKpsrIy58VLl+5cbW6m0WgUHo+HsizT1NtLVVWpaRodIyNUVDdv+3x0jI6y8I017SeAp7OBuQBmTYEBAGL1ev27EWFhB/ZnZTkbm5rYb77BltZWGsrLRWPTVfaZB1h7tpKGL/ewsqTo992bNnXs0wfvBRD0T19vdjgQFQmkLwkPN2x+aVnbO3ExA6uB2p0vPGX7KOEZxzrgXE402rbMw7nVwOZS4NnpwKkEA4hZByRnAm/lA2tP6HHgaAgOngTW1ABJZ4AV9282awbrz2QBwQVAaCowpxiIMQCLUoE5ecD8t+/17D8l8H7NmD8Aw0h46qvM+RMAAAAASUVORK5CYII=)'
              };
              for (var a in attributes)
              toolbaritem.setAttribute(a, attributes[a]);
              appendMenupopup(toolbaritem);
              toolbaritem.addEventListener('contextmenu', event => {
                event.preventDefault();
                event.stopPropagation();
                return false;
              });
              // Doppelklick links → MSN
              toolbaritem.addEventListener('dblclick', event => {
                if (event.button === 0) {
                  wetterfuchs.openPanel('MO_Doppelklick', event, 'b');
                }
              });
              // Einfachklick Mitte/Rechts → andere Seiten
              toolbaritem.addEventListener('click', event => {
                if (event.detail > 1) return;  // nur Einfachklick, kein Doppelklick
    
                if (event.button === 1) {
                  wetterfuchs.openPanel('MO_Mittelklick', event, 'b'); // daswetter.com
                }
                if (event.button === 2) {
                  wetterfuchs.openPanel('MO_Rechtsklick', event, 'b'); // wetter.net
                }
              });
              return toolbaritem;
            }
          });
    
        } catch(e) { };
    
        function appendMenupopup(toolbaritem) {
          let mymenu = document.createXULElement('menupopup');
          mymenu.id = 'wetterfuchsmenu';
          toolbaritem.appendChild(mymenu);
    	  
          function appendMenu(label, id, Items) {
            let menu = document.createXULElement('menu');
            menu.setAttribute('label', label);
            mymenu.appendChild(menu);
    
            let menupopup = document.createXULElement('menupopup');
            menupopup.id = id;
            menu.appendChild(menupopup);
    
            for (let item of Items) {
              let menuitem = document.createXULElement('menuitem');
              menuitem.setAttribute('label', item[0]);
    
              // Linksklick auf den Menüeintrag
    			    menuitem.addEventListener('click', function (ev) {
                wetterfuchs.openPanel(item[1], ev, 'p');						
    					});
              menupopup.appendChild(menuitem);
            };
          };
          appendMenu("DE Wetterdaten", "wetterfuchsdatamenu", [
            ["Wetter aktuell",         "DED_WetterAktuell"],
            ["Vorhersage",             "DED_Vorhersage"],
            ["Pollenbelastung",        "DED_Pollenbelastung"],
            ["UV-Index",               "DED_UVIndexVorhersage"],
            ["Gesund. Beschwerden",    "DED_Gesund"],
            ["Thermische Belastung",   "DED_Therm"],
            ["Wetterlage",             "DED_Wetterlage"],
            ["Flusspegel",             "DED_Flusspegel"],
            ["Regenradar",             "DED_Regenradar"],
            ["Regenradar Vorhersage",  "DED_RegenradarVorhersage"],
            ["Satellitenbild",         "DED_Satellitenbild"]
          ]);
          appendMenu("DE Wetterkarten", "wetterfuchsDEmapsmenu", [
            ["Wetter aktuell",         "DE_WetterAktuell"],
            ["Vorhersage",             "DE_Vorhersage"],
            ["Unwetterwarnung",        "DE_Unwetterwarnung"],
            ["Regenradar aktuell",     "DE_RegenradarAktuell"],
            ["Regenradarprognose",     "DE_RegenradarPrognose"],
          ]);
          appendMenu("EU Wetter", "wetterfuchsEUmapsmenu", [
            ["Aktuell und Vorhersage", "EU_AktuellVorhersage"],
            ["Unwetterwarnung",        "EU_Unwetterwarnung"],
            ["Regenradar aktuell",     "EU_RegenradarAktuell"],
            ["Regenradarprognose",     "EU_RegenradarPrognose"],      
          ]);
          appendMenu("Welt Wetter", "wetterfuchsWEmapsmenu", [
            ["Aktuell",                "WE_WetterAktuell"],
            ["Vorhersage",             "WE_WetterVorhersage"],
          ]);
          appendMenu("Blitzortung", "wetterfuchsBLZmapsmenu", [
            ["Mitteleuropa",           "DED_BlitzMittel"],
            ["Europa",                 "DED_BlitzEuro"],
            ["Welt",                   "DED_BlitzWelt"],
          ]);
          appendMenu("Regionales Wetter", "wetterfuchsRegiomapsmenu", [
            ["Aktuell und Vorhersage", "RE_AktuellVorhersage"],
            ["Unwetterwarnung",        "RE_Unwetterwarnung"],
            ["Regenradar aktuell",     "RE_RegenradarAktuell"],
            ["Regenradarprognose",     "RE_RegenradarPrognose"], 
          ]);
        };
      },
    
      init: function() {
        this.createBtn();
        let panel = document.createXULElement('panel');
        panel.id = "wetterfuchs-panel";
        panel.setAttribute('noautohide', "false");
        panel.setAttribute('type', "arrow");
    	  panel.addEventListener('popuphiding', () => {
    			wetterfuchs.clearPanel();
        });
    		panel.addEventListener('mousedown', event => {
    			if (event.button == 1) {
    				wetterfuchs.openUrlFromPanel();
    			}
        });	
        let element = document.getElementById('mainPopupSet').appendChild(panel);
        let vbox = document.createXULElement('vbox');
        panel.appendChild(vbox);
        let browser = document.createXULElement('browser');
        browser.id = "wetterfuchs-iframe";
        browser.setAttribute('type', 'content');
        browser.setAttribute('flex', '1');
        browser.setAttribute('remote', 'true');
        browser.setAttribute('src', this.wfthrobber);
        vbox.appendChild(browser);
      },
    
      myEventhandler: function (e,toDo) {
        switch (toDo) {
         case "p":
          e.preventDefault();
          break;
         case "s":
          e.stopPropagation();
          break;
         case "b":
          e.preventDefault();
          e.stopPropagation();
          break;
        }
      },
    
      clearPanel: function() {
        let myiframe = document.getElementById("wetterfuchs-iframe");
        if (!myiframe) return;
    
        myiframe.setAttribute("src", this.wfthrobber);
        this.setIFrameSize(146, 146);
      },
    
      openUrlFromPanel: function() {
        openWebLinkIn(document.getElementById("wetterfuchs-iframe").getAttribute("src"),"tab");
        document.getElementById("wetterfuchs-panel").hidePopup();
      },
    
      openPanel: function(bezeichner, e, toDo) {
        this.myEventhandler(e, toDo);
    
        let mymenu = document.getElementById("wetterfuchsmenu");
        if (mymenu && mymenu.state === "open" && e.button !== 0) {
          return;
        }
        if (mymenu) {
          mymenu.hidePopup();
        }
    
        let myiframe = document.getElementById("wetterfuchs-iframe");
        let mypanel  = document.getElementById("wetterfuchs-panel");
        if (!myiframe || !mypanel) {
          return;
        }
    
        // Konfiguration aus urlobj holen
        let cfg = this.urlobj[bezeichner];
        if (!cfg) {
          return;
        }
    
        // Panelgröße setzen
        this.setIFrameSize(cfg.width, cfg.height);
    
        // Panel öffnen (wie bisher)
        mypanel.openPopup(document.getElementById("wetterfuchs-toolbarbutton"));
    
        // Neu-Laden erzwingen, auch wenn dieselbe URL noch mal kommt
        let newUrl = cfg.url;
        let oldUrl = myiframe.getAttribute("src");
    
        if (oldUrl === newUrl) {
          // kleiner Trick: kurz auf about:blank, dann wieder zurück
          myiframe.setAttribute("src", "about:blank");
          setTimeout(() => {
            myiframe.setAttribute("src", newUrl);
          }, 50);
        } else {
          myiframe.setAttribute("src", newUrl);
        }
      },
    
    
      setIFrameSize: function( _width, _height) {
    		var cssIn =`
    			#wetterfuchs-panel vbox {
    				width: 	${_width}px !important;
    				height: ${_height}px !important;
    			}
    		`;
    		service = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
    		uri = makeURI('data:text/css;charset=UTF=8,' + encodeURIComponent(cssIn));
    		service.loadAndRegisterSheet(uri, service.AGENT_SHEET);	
    	}
    
    };
    
    if (location == 'chrome://browser/content/browser.xhtml')
      wetterfuchs.init();
    Alles anzeigen
  • Wetterfuchsbutton Script für userChrome.js

    • Mira_Belle
    • 5. Februar 2026 um 20:38

    So, jetzt aber, so hoffe ich!
    Und ich habe auch gleich mal das Menü gefixt!
    Denn das funktionierte ja auch nicht.

    Dass ich http://www.perplexity.ai genutzt habe, muss ich erwähnen!

    JavaScript
    // ==UserScript==
    // @name           wetterfuchsbutton.uc.js
    // @compatibility  Firefox 147+
    // @include        main
    // @note           by mira with help from www.perplexity.ai
    // @version        1.0.20260205
    // ==/UserScript==
    
    var wetterfuchs = {
    
      urlobj: {
        MO_Doppelklick: {url:"https://www.msn.com/de-de/wetter/heute/de/Berlin,BE,Deutschland/we-city-52.520,13.380",width:700,height:640},
        MO_Rechtsklick: {url:"http://www.wetter.net/47/Berlin",width:850,height:630},
        MO_Mittelklick: {url:"https://www.daswetter.com/wetter_Berlin-Europa-Deutschland-Berlin--1-26301.html",width:800,height:638},
        DED_WetterAktuell: {url:"https://www.wetterkontor.de/de/deutschland_aktuell.asp?id=0&page=0&sort=0",width:625,height:865},
        DED_Vorhersage: {url:"https://www.wetterkontor.de/de/wetter/deutschland.asp",width:670,height:780},
    	  DED_Wetterlage: {url:"https://www.wetterkontor.de/de/wetterlage.asp",width:430,height:405},
        DED_Pollenbelastung: {url:"https://www.wetterkontor.de/de/bio/pollenflug-erle.asp",width:560,height:730},
        DED_UVIndexVorhersage: {url:"https://www.wetterkontor.de/de/bio/uv-index.asp",width:478,height:720},
    	  DED_Gesund: {url:"https://www.wetterkontor.de/de/bio/befinden-und-gesundheit.asp?id=1",width:572,height:565},
    	  DED_Therm: {url:"https://www.wetterkontor.de/de/bio/thermische-belastung.asp",width:572,height:565},
    	  DED_Flusspegel: {url:"https://www.wetterkontor.de/de/pegel/",width:670,height:792},
    	  DED_Regenradar: {url:"https://www.wetterkontor.de/de/radar.asp?p=1",width:532,height:575},
        DED_RegenradarVorhersage: {url:"https://www.wetterkontor.de/de/radar/radar-vorhersage.asp?p=1",width:528,height:570},
    	  DED_Satellitenbild: {url:"https://www.austrocontrol.at/jart/met/radar/satloop.gif",width:620,height:470},
    	  DED_BlitzMittel: {url:"https://map.blitzortung.org/#5.34/51.978/10.499",width:740,height:740},
    	  DED_BlitzEuro: {url:"https://map.blitzortung.org/#5.25/50.48/11.333",width:740,height:740},
    	  DED_BlitzWelt: {url:"https://map.blitzortung.org/#1.37/43.3/21.9",width:940,height:678},
        DE_WetterAktuell: {url:"https://www.dwd.de/DWD/wetter/aktuell/deutschland/bilder/wx_deutschland.jpg",width:780,height:520},
        DE_Vorhersage: {url:"https://www.dwd.de/DWD/wetter/wv_allg/deutschland/film/vhs_deutschland.jpg",width:780,height:485},
        DE_Unwetterwarnung: {url:"http://www.unwetterzentrale.de/images/map/deutschland_index.png",width:572,height:572},
        DE_RegenradarAktuell: {url:"https://www.niederschlagsradar.de/de-de",width:570,height:650},
        DE_RegenradarPrognose: {url:"https://www.windy.com/de/-Regen-Gewitter-rain?rain,50.723,10.525,7",width:620,height:690},
        EU_AktuellVorhersage: {url:"https://www.wetterkontor.de/de/wetter/europa/",width:680,height:690},
        EU_Unwetterwarnung: {url:"http://www.unwetterzentrale.de/images/map/europe_index.png",width:572,height:572},
        EU_RegenradarAktuell: {url:"https://www.niederschlagsradar.de/de-de/continent/eu",width:570,height:670},
        EU_RegenradarPrognose: {url:"https://www.wetteronline.de/regenradar/europa?wro=true",width:660,height:700},
        WE_WetterAktuell: {url:"https://www.wetterdienst.de/Weltwetter/Beobachtungen/Aktuell/Nordamerika/",width:660,height:690},
    	  WE_WetterVorhersage: {url:"https://wetter.faz.net/reisewetter/",width:660,height:700},
        RE_AktuellVorhersage: {url:"https://www.wetterkontor.de/de/wetter/deutschland/brandenburg-berlin.asp",width:675,height:640},
        RE_Unwetterwarnung: {url:"https://www.wetterkontor.de/warnungen/wetterwarnungen-brandenburg-berlin.asp",width:850,height:560},
        RE_RegenradarAktuell: {url:"https://www.wetterkontor.de/de/radar/radar-nordost.asp",width:568,height:530},
        RE_RegenradarPrognose: {url:"https://www.wetteronline.de/regenradar/berlin-bundesland?mode=interactive&wrx=52.51,13.41&wrm=8",width:850,height:850},
      },
    
      wfthrobber: "https://raw.github.com/ardiman/userChrome.js/master/wetterfuchsbutton/loading51.gif",
      // alternativ z.B. wfthrobber: "chrome://global/skin/media/throbber.png"
    
      createBtn: function() {
        try {
          CustomizableUI.createWidget({
            id: 'wetterfuchs-toolbarbutton',
            type: 'custom',
            onBuild: function(aDocument) {
              var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
              var attributes = {
                id: 'wetterfuchs-toolbarbutton',
                class: 'chromeclass-toolbar-additional',
                type: 'menu',
                removable: 'true',
                label: 'Wetterfuchs',
                tooltiptext: 'Lokale und globale Wetter Infos',
                style: 'list-style-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAD+0lEQVQ4jb3Tf0zUZRwH8LdgEngngitiMVBXcxH4h+lmETndkqVIOYemrewH4ipJmCjmmDLJRmrKBkPgMNYSMYNN3cQ1YoG4ovjpwQEnX+644ziP7/fbHd9z4SnH8+4PxXIWtLX13j7bsz17Xtvz+TwP8H9lfXx02NT62HJd3JHlurgHe9GhYX9/appkx+k31m0JKtEBzzdlLLz08+6FlxcAz9VtCi7JjtNv/NfQ60sXJQJA/VocutVx6I77+9fGbl/fNeG7nu53X355zNu89W5DSkA+AGyIj1o1I1i1KtQglyzn2MUk/+TNYgq1nEIuohg9TuHK56Qtg2PfxftdJ2L4zStzK6azHgOwoDNRf9Q/kEPeqiJ/MwiqZaRSQsqFpOswhSNL0PEeJ9pXsDVBd1IH3ZMA5jyiFSwOWt//2eIfTF+lyt3XjrCvrZjjN0vJsQpSOUbezCQdH5D2N0nrBk6aYun5+nHF+KmusXDJ/JRHwI7UrS9WH05TW1quUZLMorOjlacNp9j/ay7p2kmquyhGd5HOHeTwNgrLq0J0hfPGhyE9BUA0gICHwIq8vNy2tva7DoeDZrOZNTU1rK6uZl1dPc+fr+HF2uOUBw9SKPtJ18fk8FZOGqPYsy34l1Ig9iEwBogs+uLzVpPJRIvFIoxGIxsaGihJEm02G212O43dfaysrKC9L4/05JDOHRTmeKHVzOaVJH1tInRPTHmBGe9v3/NTc/P40NAQrVYrJUni4ODgPcxm4/DwMB0OBzs6Onm2qpAj/bmcdKZTmBbRtD2o80pw4MZ9gB4AkJaWFnHhwoU7qqrS6XSKkZGRB5DL5aIsy1QUhaqq0uVycWBggF1d7aLlx+OcuB4hpMwQaz6w5P4rAVJSUhJ6e3vpdrupKAplWaYkSTSZTJRlmZqm0ev10uv1UtM0jo+P0+fzcXBIFj1nEiekzBDnt0vnffKgfytXrlxWX1/v93g8dLvdtFqt7O7uFhaLhXa7nYqiUNM0appGVVXp8/mE3+/nrdvjrMrY214FJJUBkX8dSkRycvKpsrIy58VLl+5cbW6m0WgUHo+HsizT1NtLVVWpaRodIyNUVDdv+3x0jI6y8I017SeAp7OBuQBmTYEBAGL1ev27EWFhB/ZnZTkbm5rYb77BltZWGsrLRWPTVfaZB1h7tpKGL/ewsqTo992bNnXs0wfvBRD0T19vdjgQFQmkLwkPN2x+aVnbO3ExA6uB2p0vPGX7KOEZxzrgXE402rbMw7nVwOZS4NnpwKkEA4hZByRnAm/lA2tP6HHgaAgOngTW1ABJZ4AV9282awbrz2QBwQVAaCowpxiIMQCLUoE5ecD8t+/17D8l8H7NmD8Aw0h46qvM+RMAAAAASUVORK5CYII=)'
              };
              for (var a in attributes)
              toolbaritem.setAttribute(a, attributes[a]);
              appendMenupopup(toolbaritem);
    					toolbaritem.addEventListener('contextmenu', () => {
    						return false;
    					});
              // Doppelklick links → MSN
              toolbaritem.addEventListener('dblclick', event => {
                if (event.button === 0) {
                  wetterfuchs.openPanel('MO_Doppelklick', event, 'b');
                }
              });
              // Einfachklick Mitte/Rechts → andere Seiten
              toolbaritem.addEventListener('click', event => {
                if (event.detail > 1) return;  // nur Einfachklick, kein Doppelklick
    
                if (event.button === 1) {
                  wetterfuchs.openPanel('MO_Mittelklick', event, 'b'); // daswetter.com
                }
                if (event.button === 2) {
                  wetterfuchs.openPanel('MO_Rechtsklick', event, 'b'); // wetter.net
                }
              });
              return toolbaritem;
            }
          });
    
        } catch(e) { };
    
        function appendMenupopup(toolbaritem) {
          let mymenu = document.createXULElement('menupopup');
          mymenu.id = 'wetterfuchsmenu';
          toolbaritem.appendChild(mymenu);
    	  
          function appendMenu(label, id, Items) {
            let menu = document.createXULElement('menu');
            menu.setAttribute('label', label);
            mymenu.appendChild(menu);
    
            let menupopup = document.createXULElement('menupopup');
            menupopup.id = id;
            menu.appendChild(menupopup);
    
            for (let item of Items) {
              let menuitem = document.createXULElement('menuitem');
              menuitem.setAttribute('label', item[0]);
    
              // Linksklick auf den Menüeintrag
    			    menuitem.addEventListener('click', function (ev) {
                wetterfuchs.openPanel(item[1], ev, 'p');						
    					});
              menupopup.appendChild(menuitem);
            };
          };
          appendMenu("DE Wetterdaten", "wetterfuchsdatamenu", [
            ["Wetter aktuell",         "DED_WetterAktuell"],
            ["Vorhersage",             "DED_Vorhersage"],
            ["Pollenbelastung",        "DED_Pollenbelastung"],
            ["UV-Index",               "DED_UVIndexVorhersage"],
            ["Gesund. Beschwerden",    "DED_Gesund"],
            ["Thermische Belastung",   "DED_Therm"],
            ["Wetterlage",             "DED_Wetterlage"],
            ["Flusspegel",             "DED_Flusspegel"],
            ["Regenradar",             "DED_Regenradar"],
            ["Regenradar Vorhersage",  "DED_RegenradarVorhersage"],
            ["Satellitenbild",         "DED_Satellitenbild"]
          ]);
          appendMenu("DE Wetterkarten", "wetterfuchsDEmapsmenu", [
            ["Wetter aktuell",         "DE_WetterAktuell"],
            ["Vorhersage",             "DE_Vorhersage"],
            ["Unwetterwarnung",        "DE_Unwetterwarnung"],
            ["Regenradar aktuell",     "DE_RegenradarAktuell"],
            ["Regenradarprognose",     "DE_RegenradarPrognose"],
          ]);
          appendMenu("EU Wetter", "wetterfuchsEUmapsmenu", [
            ["Aktuell und Vorhersage", "EU_AktuellVorhersage"],
            ["Unwetterwarnung",        "EU_Unwetterwarnung"],
            ["Regenradar aktuell",     "EU_RegenradarAktuell"],
            ["Regenradarprognose",     "EU_RegenradarPrognose"],      
          ]);
          appendMenu("Welt Wetter", "wetterfuchsWEmapsmenu", [
            ["Aktuell",                "WE_WetterAktuell"],
            ["Vorhersage",             "WE_WetterVorhersage"],
          ]);
          appendMenu("Blitzortung", "wetterfuchsBLZmapsmenu", [
            ["Mitteleuropa",           "DED_BlitzMittel"],
            ["Europa",                 "DED_BlitzEuro"],
            ["Welt",                   "DED_BlitzWelt"],
          ]);
          appendMenu("Regionales Wetter", "wetterfuchsRegiomapsmenu", [
            ["Aktuell und Vorhersage", "RE_AktuellVorhersage"],
            ["Unwetterwarnung",        "RE_Unwetterwarnung"],
            ["Regenradar aktuell",     "REU_RegenradarAktuell"],
            ["Regenradarprognose",     "RE_RegenradarPrognose"], 
          ]);
        };
    
      },
    
      init: function() {
        this.createBtn();
        let panel = document.createXULElement('panel');
        panel.id = "wetterfuchs-panel";
        panel.setAttribute('noautohide', "false");
        panel.setAttribute('type', "arrow");
    	  panel.addEventListener('popuphiding', () => {
    			wetterfuchs.clearPanel();
        });
    		panel.addEventListener('mousedown', event => {
    			if (event.button == 1) {
    				wetterfuchs.openUrlFromPanel();
    			}
        });	
        let element = document.getElementById('mainPopupSet').appendChild(panel);
        let vbox = document.createXULElement('vbox');
        panel.appendChild(vbox);
        let browser = document.createXULElement('browser');
        browser.id = "wetterfuchs-iframe";
        browser.setAttribute('type', 'content');
        browser.setAttribute('flex', '1');
        browser.setAttribute('remote', 'true');
        browser.setAttribute('src', this.wfthrobber);
        vbox.appendChild(browser);
      },
    
      myEventhandler: function (e,toDo) {
        switch (toDo) {
         case "p":
          e.preventDefault();
          break;
         case "s":
          e.stopPropagation();
          break;
         case "b":
          e.preventDefault();
          e.stopPropagation();
          break;
        }
      },
    
      clearPanel: function() {
        let myiframe = document.getElementById("wetterfuchs-iframe");
        if (!myiframe) return;
    
        myiframe.setAttribute("src", this.wfthrobber);
        this.setIFrameSize(146, 146);
      },
    
      openUrlFromPanel: function() {
        openWebLinkIn(document.getElementById("wetterfuchs-iframe").getAttribute("src"),"tab");
        document.getElementById("wetterfuchs-panel").hidePopup();
      },
    
      openPanel: function(bezeichner, e, toDo) {
        this.myEventhandler(e, toDo);
    
        let mymenu = document.getElementById("wetterfuchsmenu");
        if (mymenu && mymenu.state === "open" && e.button !== 0)
          return;
        if (mymenu)
          mymenu.hidePopup();
    
        let myiframe = document.getElementById("wetterfuchs-iframe");
        let mypanel  = document.getElementById("wetterfuchs-panel");
        if (!myiframe || !mypanel)
          return;
    
        // Konfiguration aus urlobj holen
        let cfg = this.urlobj[bezeichner];
        if (!cfg)
          return;
    
        // Größe setzen
        this.setIFrameSize(cfg.width, cfg.height);
    
        // Panel öffnen (wie bisher)
        mypanel.openPopup(document.getElementById("wetterfuchs-toolbarbutton"));
    
        // Neu-Laden erzwingen, auch wenn dieselbe URL noch mal kommt:
        let newUrl = cfg.url;
        let oldUrl = myiframe.getAttribute("src");
    
        if (oldUrl === newUrl) {
          // kleiner Trick: kurz auf about:blank, dann wieder zurück
          myiframe.setAttribute("src", "about:blank");
          setTimeout(() => {
            myiframe.setAttribute("src", newUrl);
          }, 50);
        } else {
          myiframe.setAttribute("src", newUrl);
        }
        mypanel.openPopup(document.getElementById("wetterfuchs-toolbarbutton"));
      },
    
    
      setIFrameSize: function( _width, _height) {
    		var cssIn =`
    			#wetterfuchs-panel vbox {
    				width: 	${_width}px !important;
    				height: ${_height}px !important;
    			}
    		`;
    		service = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
    		uri = makeURI('data:text/css;charset=UTF=8,' + encodeURIComponent(cssIn));
    		service.loadAndRegisterSheet(uri, service.AGENT_SHEET);	
    	}
    
    };
    
    if (location == 'chrome://browser/content/browser.xhtml')
      wetterfuchs.init();
    Alles anzeigen

    Misst, gerade eben spinnt es wieder!
    Seiten werden im Popup nicht mehr neu geladen!

    Ich krich doch die Motten.

  • Wetterfuchsbutton Script für userChrome.js

    • Mira_Belle
    • 5. Februar 2026 um 18:50
    Zitat von Endor

    Edit: Leider hängt es nach einer Weile wieder.

    Ist mir bekannt. Leider ist das so.

    Werde da mal dran bleiben.

  • Wetterfuchsbutton Script für userChrome.js

    • Mira_Belle
    • 5. Februar 2026 um 15:30

    Endor
    Bitte Teste.

    JavaScript
    // ==UserScript==
    // @name           wetterfuchsbutton.uc.js
    // @compatibility  Firefox 147+
    // @include        main
    // @version        1.0.20260204
    // ==/UserScript==
    
    var wetterfuchs = {
    
      urlobj: {
        MO_Doppelklick: {url:"https://www.msn.com/de-de/wetter/heute/de/Berlin,BE,Deutschland/we-city-52.520,13.380",width:700,height:640},
        MO_Rechtsklick: {url:"http://www.wetter.net/47/Berlin",width:850,height:630},
        MO_Mittelklick: {url:"https://www.daswetter.com/wetter_Berlin-Europa-Deutschland-Berlin--1-26301.html",width:800,height:638},
        DED_WetterAktuell: {url:"https://www.wetterkontor.de/de/deutschland_aktuell.asp?id=0&page=0&sort=0",width:625,height:865},
        DED_Vorhersage: {url:"https://www.wetterkontor.de/de/wetter/deutschland.asp",width:670,height:780},
    	DED_Wetterlage: {url:"https://www.wetterkontor.de/de/wetterlage.asp",width:430,height:405},
        DED_Pollenbelastung: {url:"https://www.wetterkontor.de/de/bio/pollenflug-erle.asp",width:560,height:730},
        DED_UVIndexVorhersage: {url:"https://www.wetterkontor.de/de/bio/uv-index.asp",width:478,height:720},
    	DED_Gesund: {url:"https://www.wetterkontor.de/de/bio/befinden-und-gesundheit.asp?id=1",width:572,height:565},
    	DED_Therm: {url:"https://www.wetterkontor.de/de/bio/thermische-belastung.asp",width:572,height:565},
    	DED_Flusspegel: {url:"https://www.wetterkontor.de/de/pegel/",width:670,height:792},
    	DED_Regenradar: {url:"https://www.wetterkontor.de/de/radar.asp?p=1",width:532,height:575},
        DED_RegenradarVorhersage: {url:"https://www.wetterkontor.de/de/radar/radar-vorhersage.asp?p=1",width:528,height:570},
    	DED_Satellitenbild: {url:"https://www.austrocontrol.at/jart/met/radar/satloop.gif",width:620,height:470},
    	DED_BlitzMittel: {url:"https://map.blitzortung.org/#5.34/51.978/10.499",width:740,height:740},
    	DED_BlitzEuro: {url:"https://map.blitzortung.org/#5.25/50.48/11.333",width:740,height:740},
    	DED_BlitzWelt: {url:"https://map.blitzortung.org/#1.37/43.3/21.9",width:940,height:678},
        DE_WetterAktuell: {url:"https://www.dwd.de/DWD/wetter/aktuell/deutschland/bilder/wx_deutschland.jpg",width:780,height:520},
        DE_Vorhersage: {url:"https://www.dwd.de/DWD/wetter/wv_allg/deutschland/film/vhs_deutschland.jpg",width:780,height:485},
        DE_Unwetterwarnung: {url:"http://www.unwetterzentrale.de/images/map/deutschland_index.png",width:572,height:572},
        DE_RegenradarAktuell: {url:"https://www.niederschlagsradar.de/de-de",width:570,height:650},
        DE_RegenradarPrognose: {url:"https://www.windy.com/de/-Regen-Gewitter-rain?rain,50.723,10.525,7",width:620,height:690},
        EU_AktuellVorhersage: {url:"https://www.wetterkontor.de/de/wetter/europa/",width:680,height:690},
        EU_Unwetterwarnung: {url:"http://www.unwetterzentrale.de/images/map/europe_index.png",width:572,height:572},
        EU_RegenradarAktuell: {url:"https://www.niederschlagsradar.de/de-de/continent/eu",width:570,height:670},
        EU_RegenradarPrognose: {url:"https://www.wetteronline.de/regenradar/europa?wro=true",width:660,height:700},
        WE_WetterAktuell: {url:"https://www.wetterdienst.de/Weltwetter/Beobachtungen/Aktuell/Nordamerika/",width:660,height:690},
    	WE_WetterVorhersage: {url:"https://wetter.faz.net/reisewetter/",width:660,height:700},
        RE_AktuellVorhersage: {url:"https://www.wetterkontor.de/de/wetter/deutschland/brandenburg-berlin.asp",width:675,height:640},
        RE_Unwetterwarnung: {url:"https://www.wetterkontor.de/warnungen/wetterwarnungen-brandenburg-berlin.asp",width:850,height:560},
        RE_RegenradarAktuell: {url:"https://www.wetterkontor.de/de/radar/radar-nordost.asp",width:568,height:530},
        RE_RegenradarPrognose: {url:"https://www.wetteronline.de/regenradar/berlin-bundesland?mode=interactive&wrx=52.51,13.41&wrm=8",width:850,height:850},
      },
    
      wfthrobber: "https://raw.github.com/ardiman/userChrome.js/master/wetterfuchsbutton/loading51.gif",
      // alternativ z.B. wfthrobber: "chrome://global/skin/media/throbber.png"
    
      createBtn: function() {
        try {
          CustomizableUI.createWidget({
             id: 'wetterfuchs-toolbarbutton',
             type: 'custom',
             onBuild: function(aDocument) {
                var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                var attributes = {
                   id: 'wetterfuchs-toolbarbutton',
                   class: 'chromeclass-toolbar-additional',
                   type: 'menu',
                   removable: 'true',
                   label: 'Wetterfuchs',
                   tooltiptext: 'Lokale und globale Wetter Infos',
                   style: 'list-style-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAD+0lEQVQ4jb3Tf0zUZRwH8LdgEngngitiMVBXcxH4h+lmETndkqVIOYemrewH4ipJmCjmmDLJRmrKBkPgMNYSMYNN3cQ1YoG4ovjpwQEnX+644ziP7/fbHd9z4SnH8+4PxXIWtLX13j7bsz17Xtvz+TwP8H9lfXx02NT62HJd3JHlurgHe9GhYX9/appkx+k31m0JKtEBzzdlLLz08+6FlxcAz9VtCi7JjtNv/NfQ60sXJQJA/VocutVx6I77+9fGbl/fNeG7nu53X355zNu89W5DSkA+AGyIj1o1I1i1KtQglyzn2MUk/+TNYgq1nEIuohg9TuHK56Qtg2PfxftdJ2L4zStzK6azHgOwoDNRf9Q/kEPeqiJ/MwiqZaRSQsqFpOswhSNL0PEeJ9pXsDVBd1IH3ZMA5jyiFSwOWt//2eIfTF+lyt3XjrCvrZjjN0vJsQpSOUbezCQdH5D2N0nrBk6aYun5+nHF+KmusXDJ/JRHwI7UrS9WH05TW1quUZLMorOjlacNp9j/ay7p2kmquyhGd5HOHeTwNgrLq0J0hfPGhyE9BUA0gICHwIq8vNy2tva7DoeDZrOZNTU1rK6uZl1dPc+fr+HF2uOUBw9SKPtJ18fk8FZOGqPYsy34l1Ig9iEwBogs+uLzVpPJRIvFIoxGIxsaGihJEm02G212O43dfaysrKC9L4/05JDOHRTmeKHVzOaVJH1tInRPTHmBGe9v3/NTc/P40NAQrVYrJUni4ODgPcxm4/DwMB0OBzs6Onm2qpAj/bmcdKZTmBbRtD2o80pw4MZ9gB4AkJaWFnHhwoU7qqrS6XSKkZGRB5DL5aIsy1QUhaqq0uVycWBggF1d7aLlx+OcuB4hpMwQaz6w5P4rAVJSUhJ6e3vpdrupKAplWaYkSTSZTJRlmZqm0ev10uv1UtM0jo+P0+fzcXBIFj1nEiekzBDnt0vnffKgfytXrlxWX1/v93g8dLvdtFqt7O7uFhaLhXa7nYqiUNM0appGVVXp8/mE3+/nrdvjrMrY214FJJUBkX8dSkRycvKpsrIy58VLl+5cbW6m0WgUHo+HsizT1NtLVVWpaRodIyNUVDdv+3x0jI6y8I017SeAp7OBuQBmTYEBAGL1ev27EWFhB/ZnZTkbm5rYb77BltZWGsrLRWPTVfaZB1h7tpKGL/ewsqTo992bNnXs0wfvBRD0T19vdjgQFQmkLwkPN2x+aVnbO3ExA6uB2p0vPGX7KOEZxzrgXE402rbMw7nVwOZS4NnpwKkEA4hZByRnAm/lA2tP6HHgaAgOngTW1ABJZ4AV9282awbrz2QBwQVAaCowpxiIMQCLUoE5ecD8t+/17D8l8H7NmD8Aw0h46qvM+RMAAAAASUVORK5CYII=)'
                };
                for (var a in attributes)
                   toolbaritem.setAttribute(a, attributes[a]);
                appendMenupopup(toolbaritem);
    					//oncontextmenu: "return false",
    						toolbaritem.addEventListener('contextmenu', () => {
    							return false;
    						});
                         //   ondblclick: "if (event.button === 0) { wetterfuchs.openPanel(\'MO_Doppelklick\',event,\'b\')}",
    					       toolbaritem.addEventListener('dblclick', event => {
    							   if (event.button === 0) {
    								 wetterfuchs.openPanel('MO_Doppelklick',event,'b');  
    							   }
    						   })
                         //   onclick: "if (event.button === 1) {wetterfuchs.openPanel(\'MO_Mittelklick\',event,\'b\')};if (event.button === 2) {wetterfuchs.openPanel(\'MO_Rechtsklick\',event,\'b\')}",
    					      toolbaritem.addEventListener('click', event => {
    							  if (event.button === 1) {
    								  wetterfuchs.openPanel('MO_Mittelklick',event, 'b');
    							  }
    							 if (event.button === 2) {
    								 wetterfuchs.openPanel('MO_Rechtsklick', event, 'b');
    								  }
    						  });
                return toolbaritem;
             }
          });
    
        } catch(e) { };
    
        function appendMenupopup(toolbaritem) {
          let mymenu = document.createXULElement('menupopup');
          mymenu.id = 'wetterfuchsmenu';
          toolbaritem.appendChild(mymenu);
    	  
          function appendMenu(label, id, Items) {
            let menu = document.createXULElement('menu');
            menu.setAttribute('label', label);
            mymenu.appendChild(menu);
            let menupopup = document.createXULElement('menupopup');
            menupopup.id = id;
            menu.appendChild(menupopup);
            for (let item of Items) {
              let menuitem = document.createXULElement('menuitem');
              menuitem.setAttribute('label', item[0]);
              //menuitem.setAttribute('oncommand', item[1]);
    			menuitem.addEventListener('click', function (event) {
    						Function (item[1]) ();						
    					});
              menupopup.appendChild(menuitem);
            };
          };
          appendMenu("DE Wetterdaten", "wetterfuchsdatamenu", [
            ["Wetter aktuell", "wetterfuchs.openPanel(\'DED_WetterAktuell\',event,\'p\')"],
            ["Vorhersage", "wetterfuchs.openPanel(\'DED_Vorhersage\',event,\'p\')"],
            ["Pollenbelastung", "wetterfuchs.openPanel(\'DED_Pollenbelastung\',event,\'p\')"],
            ["UV-Index", "wetterfuchs.openPanel(\'DED_UVIndexVorhersage\',event,\'p\')"],
    		["Gesund. Beschwerden", "wetterfuchs.openPanel(\'DED_Gesund\',event,\'p\')"],
            ["Thermische Belastung", "wetterfuchs.openPanel(\'DED_Therm\',event,\'p\')"],
    		["Wetterlage", "wetterfuchs.openPanel(\'DED_Wetterlage\',event,\'p\')"],
    		["Flusspegel", "wetterfuchs.openPanel(\'DED_Flusspegel\',event,\'p\')"],
            ["Regenradar", "wetterfuchs.openPanel(\'DED_Regenradar\',event,\'p\')"],
            ["Regenradar Vorhersage", "wetterfuchs.openPanel(\'DED_RegenradarVorhersage\',event,\'p\')"],
            ["Satellitenbild", "wetterfuchs.openPanel(\'DED_Satellitenbild\',event,\'p\')"]
          ]);
          appendMenu("DE Wetterkarten", "wetterfuchsDEmapsmenu", [
            ["Wetter aktuell", "wetterfuchs.openPanel(\'DE_WetterAktuell\',event,\'p\')"],
            ["Vorhersage", "wetterfuchs.openPanel(\'DE_Vorhersage\',event,\'p\')"],
            ["Unwetterwarnung", "wetterfuchs.openPanel(\'DE_Unwetterwarnung\',event,\'p\')"],
            ["Regenradar aktuell", "wetterfuchs.openPanel(\'DE_RegenradarAktuell\',event,\'p\')"],
            ["Regenradarprognose", "wetterfuchs.openPanel(\'DE_RegenradarPrognose\',event,\'p\')"]
          ]);
          appendMenu("EU Wetter", "wetterfuchsEUmapsmenu", [
            ["Aktuell und Vorhersage", "wetterfuchs.openPanel(\'EU_AktuellVorhersage\',event,\'p\')"],
            ["Unwetterwarnung", "wetterfuchs.openPanel(\'EU_Unwetterwarnung\',event,\'p\')"],
            ["Regenradar aktuell", "wetterfuchs.openPanel(\'EU_RegenradarAktuell\',event,\'p\')"],
            ["Regenradarprognose", "wetterfuchs.openPanel(\'EU_RegenradarPrognose\',event,\'p\')"]
          ]);
          appendMenu("Welt Wetter", "wetterfuchsWEmapsmenu", [
            ["Aktuell", "wetterfuchs.openPanel(\'WE_WetterAktuell\',event,\'p\')"],
    		["Vorhersage", "wetterfuchs.openPanel(\'WE_WetterVorhersage\',event,\'p\')"]
          ]);
    	  appendMenu("Blitzortung", "wetterfuchsBLZmapsmenu", [
            ["Mitteleuropa", "wetterfuchs.openPanel(\'DED_BlitzMittel\',event,\'p\')"],
            ["Europa", "wetterfuchs.openPanel(\'DED_BlitzEuro\',event,\'p\')"],
            ["Welt", "wetterfuchs.openPanel(\'DED_BlitzWelt\',event,\'p\')"]
    	  ]);
          appendMenu("Regionales Wetter", "wetterfuchsRegiomapsmenu", [
            ["Aktuell und Vorhersage", "wetterfuchs.openPanel(\'RE_AktuellVorhersage\',event,\'p\')"],
            ["Unwetterwarnung", "wetterfuchs.openPanel(\'RE_Unwetterwarnung\',event,\'p\')"],
            ["Regenradar aktuell", "wetterfuchs.openPanel(\'RE_RegenradarAktuell\',event,\'p\')"],
            ["Regenradarprognose", "wetterfuchs.openPanel(\'RE_RegenradarPrognose\',event,\'p\')"]
          ]);
        };
    
        },
    
      init: function() {
        this.createBtn();
        let panel = document.createXULElement('panel');
        panel.id = "wetterfuchs-panel";
        panel.setAttribute('noautohide', "false");
        panel.setAttribute('type', "arrow");
           // panel.setAttribute('onpopuphiding', "wetterfuchs.clearPanel()");
    	   panel.addEventListener('popuphiding', () => {
    			wetterfuchs.clearPanel();
    	});
            //panel.setAttribute('onmousedown', "if (event.button == 1) wetterfuchs.openUrlFromPanel()");
    		panel.addEventListener('mousedown', event => {
    			if (event.button == 1) {
    				wetterfuchs.openUrlFromPanel();
    			}
    	});	
        let element = document.getElementById('mainPopupSet').appendChild(panel);
        let vbox = document.createXULElement('vbox');
        panel.appendChild(vbox);
        let browser = document.createXULElement('browser');
        browser.id = "wetterfuchs-iframe";
        browser.setAttribute('type', 'content');
        browser.setAttribute('flex', '1');
    	browser.setAttribute('remote', 'true');
        browser.setAttribute('src', this.wfthrobber);
        vbox.appendChild(browser);
      },
    
      myEventhandler: function (e,toDo) {
        switch (toDo) {
         case "p":
          e.preventDefault();
          break;
         case "s":
          e.stopPropagation();
          break;
         case "b":
          e.preventDefault();
          e.stopPropagation();
          break;
        }
      },
    
      clearPanel: function() {
        var myiframe = document.getElementById("wetterfuchs-iframe");
        myiframe.parentNode.width = 146;
        myiframe.parentNode.height = 146;
        myiframe.setAttribute("src",this.wfthrobber);
      },
    
      openUrlFromPanel: function() {
        openWebLinkIn(document.getElementById("wetterfuchs-iframe").getAttribute("src"),"tab");
        document.getElementById("wetterfuchs-panel").hidePopup();
      },
      /*
      openPanel: function(bezeichner,e,toDo) {
        this.myEventhandler(e,toDo);
        var mymenu = document.getElementById("wetterfuchsmenu");
        if (mymenu.state === "open" && e.button !== 0) return;
        mymenu.hidePopup();
        var myiframe = document.getElementById("wetterfuchs-iframe");
    	
    	this.setIFrameSize(this.urlobj[bezeichner]["width"], this.urlobj[bezeichner]["height"]);
    	
        myiframe.setAttribute("src",this.urlobj[bezeichner]["url"]);
        var mypanel = document.getElementById("wetterfuchs-panel");
        mypanel.openPopup(document.getElementById("wetterfuchs-toolbarbutton"));
    	
      },
      */
      // Neu !
      openPanel: function(bezeichner,e,toDo) {
          this.myEventhandler(e,toDo);
          var mymenu = document.getElementById("wetterfuchsmenu");
          if (mymenu.state === "open" && e.button !== 0) return;
          mymenu.hidePopup();
          var myiframe = document.getElementById("wetterfuchs-iframe");
          
          // Wichtig: erst auf blank → dann auf Ziel-URL
          myiframe.setAttribute("src", "about:blank");
          
          // ganz kurze Verzögerung – oft nötig, damit blank wirklich greift
          setTimeout(() => {
              this.setIFrameSize(this.urlobj[bezeichner]["width"], this.urlobj[bezeichner]["height"]);
    
              myiframe.setAttribute("src", this.urlobj[bezeichner]["url"]);
              var mypanel = document.getElementById("wetterfuchs-panel");
              mypanel.openPopup(document.getElementById("wetterfuchs-toolbarbutton"));
          }, 50);   // 50–100 ms reichen meist
      },  
    
      	setIFrameSize: function( _width, _height) {
    		var cssIn =`
    			#wetterfuchs-panel vbox {
    				width: 	${_width}px !important;
    				height: ${_height}px !important;
    			}
    		`;
    		service = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
    		uri = makeURI('data:text/css;charset=UTF=8,' + encodeURIComponent(cssIn));
    		service.loadAndRegisterSheet(uri, service.AGENT_SHEET);	
    	}
    
    };
    
    if (location == 'chrome://browser/content/browser.xhtml')
      wetterfuchs.init();
    Alles anzeigen
  • Wetterfuchsbutton Script für userChrome.js

    • Mira_Belle
    • 5. Februar 2026 um 14:39

    Endor Könntest Du Dein aktuell verwendetes Skript posten
    und wen Du extra noch separates CSS verwendest, das auch?

  • Problem mit Simple Translate & DeepL

    • Mira_Belle
    • 2. Februar 2026 um 14:41

    Update ist verfügbar und das Übersetzen mit DeepL funktioniert wieder!

  • Vollbild-Fenstermodus

    • Mira_Belle
    • 1. Februar 2026 um 15:51
    Zitat von Smirre

    Hm, was ist denn der Unterschied zwischen dieser Methode, und dem Fall einfach nur die CSS zu benutzen? Ich glaube damit löst man keine der verbleibenden Problemchen.

    Nur mit dem CSS, bleibt bei mir oben ein "Balken", mit zusätzlichem Skript ist der weg.
    Kann jetzt aber auch an meinem System liegen.

    Zitat von Smirre

    Eines interessiert mich aber beiläufig dennoch: Deine Fensterkanten hier sind nicht abgerundet. Hat wohl mit Deinem angepassten Windows Theme zu tun?

    Ä, nein, das ist Original! Es ist Windows 10! Da gab es keine abgerundeten Ecken. ;)

    Ich bin nun an dieser Stelle raus, denn ich denke, dass ich Dir nicht mehr weiterhelfen kann,
    hoffe aber, dass Du mit dem zufrieden bist, was Dir bis jetzt an die Hand gegeben wurde,
    oder dass Du doch noch etwas findest, was dann all Deine Wünsche erfüllt.

  • Vollbild-Fenstermodus

    • Mira_Belle
    • 1. Februar 2026 um 14:41

    Kurios!
    Eventuell ist es das!
    Scritp + CSS und "full-screen-api.ignore-widgets" auf true.

    Schaut dann so aus:

    PS.
    Habe mal das Theme gewechselt, ohne Rahmen.
    OK, hat ja auch einen 1px und Schatten.

    Ach ja, Titelleiste aus:!:

    Zitat von Smirre

    Du könntest mir aber gerne den Link und die Tipps dazu noch geben!

    Windows 10 modden - Seite 3 - Deskmodder.de

    Da hatte ich das Thema von Roots aufgegriffen!
    Was den Tipp betrifft, nutze "DWMBlurGlass", damit kannst Du den Rahmen sowie den Schatten beeinflussen,
    dann musst Du eventuell gar nicht an die Theme-Datei ran.

    Releases · Maplespe/DWMBlurGlass
    Add custom effect to global system title bar, support win10 and win11. - Maplespe/DWMBlurGlass
    github.com
  • Vollbild-Fenstermodus

    • Mira_Belle
    • 1. Februar 2026 um 10:03

    Mh, :/.

    Ich habe "full-screen-api.ignore-widgets" auf true gestellt und das Skript installiert!

    Drücke ich F11 funktioniert der Vollbildschirm eben im Fenster!
    Ziehe ich den Mauszeiger an den oberen Rand, erscheinen die Adressleiste und die Tableiste.

    Ich habe aber auch nicht Tampermonkey genutzt um das Skript laufen zu lassen,
    sondern habe meinen Firefox so modifiziert, dass UserSkripte direkt verarbeitet werden.
    Hier die Anleitung dazu: https://github.com/Endor8/userChr…aster/readme.md

    Was den Fensterrand und den Schattenwurf angeht, da bin ich nach wie vor der Meinung,
    dass das mit dem BS zu tun hat! OK, auch zu tun hat.

    Wie ich schon schrieb, ich bin den umgekehrten Weg gegangen.
    Ich wollte bei meinem Windows 10 wieder richtige Fensterrahmen haben
    und nicht diese dünnen Linien, die jeder Beschreibung spotten.
    (Grund, ich arbeite eben oft mit sich überlappenden Fenster auf einem großen Bildschirm, und wenn dann zwei Fenster einen hellen Hintergrund haben, einfach schrecklich)

    Aber ich habe da noch eine Frage!
    Nutzt Du beim Firefox die Titelleiste?
    Wenn nein, dann mal einschalten, denn ohne funktioniert das Einblenden der Adress- und Tableiste nicht.

    Kurz zusammen gefasst, mir ist es nicht möglich ein Firefoxfenster ohne Rahmen und ohne "Bedienelemente" zu erzeugen.
    Auch wird es immer einen Rahmen mit Schattenwurf geben.
    Aber ist das mit dem Rahmen, der ja nun wirklich mit nur einem Pixel nicht wirklich die Welt ist, so störend?
    Beim Schattenwurf könnte ich es ja noch irgendwie nachvollziehen, aber beim Rahmen?

    Wenn es wirklich so störend ist, wirst Du nicht umhinkommen Dein Windows zu modden,
    aber ich sage Dir gleich, ist nicht einfach und wenn es blöd läuft musst Du nach jedem Update
    nachbessern, ist nicht wirklich so dolle.

    Wenn Dich das nicht abschreckt, gibt es den Link und auch noch ein paar Tipps dazu.
    Ist viel zu lesen!

    Nachtrag

    Ich habe mal zwei Bildchen angehängt.
    Das erste nach drücken von F11.

    Das Zweite mit Mauszeiger am oberen Rand, damit die Leisten eingeblendet werden.


    Normal sieht der Fuchs so bei mir aus:

Unterstütze uns!

Jährlich (2026)

71,6 %

71,6% (554,79 von 775 EUR)

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