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

  • 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:

  • Vollbild-Fenstermodus

    • Mira_Belle
    • 31. Januar 2026 um 22:55

    Smirre Bitte testen.

    1. Öffne about:config in Firefox (bestätige die Warnung).

    2. Suche nach full-screen-api.ignore-widgets und setze es auf true.

    Bereite Deinen FF für UserSkripte vor.

    Dann hier ein Skript.

    Code
    // ==/UserScript==
    
    (function() {
        'use strict';
    
        // Original requestFullscreen speichern und überschreiben
        if (Element.prototype.requestFullscreen) {
            Element.prototype.originalRequestFullscreen = Element.prototype.requestFullscreen;
            Element.prototype.requestFullscreen = function(options) {
                // Zentriertes Overlay-Fenster erstellen
                const overlay = document.createElement('div');
                overlay.style.position = 'fixed';
                overlay.style.top = '10%';
                overlay.style.left = '10%';
                overlay.style.width = '80%';
                overlay.style.height = '80%';
                overlay.style.backgroundColor = 'black'; // Hintergrund für "Fullscreen"-Look
                overlay.style.zIndex = '999999'; // Über allem
                overlay.style.border = 'none'; // Kein Rahmen
                overlay.style.resize = 'both'; // Resizable (wie ein Fenster)
                overlay.style.overflow = 'hidden'; // Kein Scroll im "Fenster"
                overlay.style.boxShadow = '0 0 10px rgba(0,0,0,0.5)'; // Optional: Schatten für Fenster-Look
    
                // Das Element in das Overlay moven
                overlay.appendChild(this);
                document.body.appendChild(overlay);
    
                // Custom Toolbar (Simulation von Browser-Leisten)
                const toolbar = document.createElement('div');
                toolbar.style.position = 'absolute';
                toolbar.style.top = '0';
                toolbar.style.left = '0';
                toolbar.style.width = '100%';
                toolbar.style.height = '30px'; // Höhe der Toolbar
                toolbar.style.backgroundColor = 'rgba(0,0,0,0.8)';
                toolbar.style.display = 'none'; // Standardmäßig versteckt
                toolbar.style.zIndex = '1000000';
                toolbar.innerHTML = '<button style="float:right; margin:5px;">X (Schließen)</button>'; // Beispiel-Button zum Schließen
                overlay.appendChild(toolbar);
    
                // Toolbar zeigen/verstecken bei Maus am oberen Rand
                overlay.addEventListener('mousemove', (e) => {
                    if (e.clientY < 50) { // Wenn Maus innerhalb 50px vom oberen Rand
                        toolbar.style.display = 'block';
                    } else {
                        toolbar.style.display = 'none';
                    }
                });
    
                // Schließen-Button: Overlay entfernen und Element zurückmovem
                toolbar.querySelector('button').addEventListener('click', () => {
                    this.parentNode.insertBefore(this, overlay); // Element zurück in Original-Position
                    overlay.remove();
                });
    
                // Kein echter Fullscreen-Aufruf
                return Promise.resolve();
            };
        }
    
        // Event für Fullscreen-Change abfangen (falls Seite es trotzdem triggert)
        document.addEventListener('fullscreenchange', (e) => {
            if (document.fullscreenElement) {
                document.exitFullscreen(); // Sofort beenden, um Simulation zu erzwingen
            }
        });
    })();
    Alles anzeigen


    Du kannst aber auch ohne das Skript arbeiten und stattdessen mit "Window Resizer" arbeiten,
    eventuell passt das für Dich besser.
    Gib mal Bescheid, ob Dir das irgendwie weiterhilft.


    Zitat von Smirre

    Ich bin bereit für eine Lösung auch zu zahlen. Danke!

    Ach ja, wenn Du was Gutes tun willst, ...

    Spende hinzufügen - camp-firefox.de
    www.camp-firefox.de


    Ist nur ein Wink mit dem Zaunpfahl, aber natürlich kein muss!

  • Problem mit Simple Translate & DeepL

    • Mira_Belle
    • 31. Januar 2026 um 20:08

    Meine Güte, lässt sich Mozilla Zeit!
    Die Erweiterung ist für den Chrome schon aktualisiert!

    Simple Translate - Chrome Web Store
    Ausgewählten oder eingegebenen Text schnell auf Webseiten übersetzen. Unterstützt Google Translate und DeepL API.
    chromewebstore.google.com


    Für den Firefox hängt sie immer noch bei Version 3.0.0 fest.

    Simple Translate – 🦊 Firefox (ja) 向け拡張機能を入手
    Firefox 向け Simple Translate をダウンロード。Webページ上で選択・入力したテキストを瞬時に翻訳します。Google翻訳とDeepL APIに対応しています。
    addons.mozilla.org
  • Vollbild-Fenstermodus

    • Mira_Belle
    • 31. Januar 2026 um 12:40
    Zitat von Smirre

    Interesse habe ich aber immer noch an der Möglichkeit, dass es sich doch noch mit dem Vollbildmodus-Im-Fenster ausfuchsen lässt, auch wenn es durchaus unwahrscheinlich ist, dass sich jemand damit beschäftigen wird.

    Die Sache ist halt, dass Mozilla da einfach zu viel verändert hat und dass es auch Sicherheitsvorkehrungen gibt,
    die man irgendwie umschiffen müsste, wobei ich gar nicht weiß, ob das überhaupt geht.

    Bei einem ersten kleinen Gehversuch mittels KI wurde ich schon auf so einige Hürden hingewiesen!
    (KI, deshalb, weil ich keine JavaScript-Expertin bin)

  • Vollbild-Fenstermodus

    • Mira_Belle
    • 31. Januar 2026 um 10:04

    Ja, ich hatte Dich anfangs falsch verstanden, ahnte das aber schon und Sören Hentzschel
    hatte mir das ja auch mit seinem Kommentar bestätigt.
    Sorry.

    Nun zu Deinem Anliegen.
    Mit dem CSS sollte doch jetzt wirklich eine gute Lösung gefunden sein.
    Wenn Du auch den Fensterrahmen, der ja jetzt wirklich mit nur 1px nicht ausgesprochen "groß" ist,
    komplett verschwinden lassen willst, musst Du Dein BS modden. (anpassen).
    Ich bin bei mir den umgekehrten Weg gegangen, W10 wie W7 aussehen lassen.
    Ich sage Dir, ist kein einfaches Unterfangen.
    Glaube mir, eine einfachere und bessere Lösung wie das mit dem CSS wirst Du aller Wahrscheinlichkeit nicht bekommen.
    Aber ich lasse mich auch gerne von dem Gegenteil beeindrucken.
    Will mich ja nicht zu weit aus dem Fenster lehnen. :)

  • Vollbild-Fenstermodus

    • Mira_Belle
    • 30. Januar 2026 um 22:17

    Smirre Geh doch noch mal in das "Hamburgermenü".

    Was siehst Du?

    Zoom! ?
    - 100% + und dahinter :?:

    Klick da doch mal drauf.
    Ist es DAS, was Du suchst?

    Nicht ganz, vermute ich.

  • Seitenzoom bei Desktopansicht dauerhaft einstellen

    • Mira_Belle
    • 29. Januar 2026 um 23:34
    Zitat von Sören Hentzschel

    ... funktioniert von den Optionen fast nichts, was man vom Desktop-Firefox kennt.

    Ok, schade.
    Danke.

  • Seitenzoom bei Desktopansicht dauerhaft einstellen

    • Mira_Belle
    • 29. Januar 2026 um 22:01

    Sorry, habe halt beim Firefox unter Windows nachgeschaut.
    Und dass es nicht für einzelne Domains, bzw. Seiten einstellbar ist,
    tut mir auch leid. Habe dafür aber auch keine Lösung.


    Nachtrag!
    Eventuell!!
    about:config → browser.zoom.siteSpecific muss auf true stehen

    Danach sollte sich der Firefox den Zoom-Level automatisch pro Domain (also pro Website) merken.

  • Seitenzoom bei Desktopansicht dauerhaft einstellen

    • Mira_Belle
    • 29. Januar 2026 um 08:56

    Einstellungen/Allgemein/Zoom

    Standard-Zoom, hier kannst Du das einstellen
    und untendrunter könntest Du bestimmen, dass nur der Text gezoomt wird, wenn Dir das besser zu sagt.

  • Problem mit Simple Translate & DeepL

    • Mira_Belle
    • 26. Januar 2026 um 23:00
    Zitat von Sören Hentzschel

    Lange Rede, kurzer Sinn: Das ist nicht wirklich abschätzbar.

    Vielen Dank.
    Warten muss ich ja so oder so und mich in der Zischenzeit mit den Googleübersetzungen begnügen.
    Ich werd's überleben.

  • Problem mit Simple Translate & DeepL

    • Mira_Belle
    • 26. Januar 2026 um 22:15

    Z.Z. funktioniert Simple Translate nicht mit DeepL.
    DeepL hat nun endgültig seine API geändert!

    sienori hat aber schon vor zwei Tagen seinen Code gefixt.
    Es kann also nur ein paar Tage dauern bis die neue Version 3.0.1 über

    Simple Translate – Holen Sie sich diese Erweiterung für 🦊 Firefox (de)
    Laden Sie Simple Translate für Firefox herunter. Quickly translate selected or typed text on web pages. Supports Google Translate and DeepL API.
    addons.mozilla.org

    bereitgestellt wird.

    Sören Hentzschel wie lange dauert in der Regel so etwas?

Unterstütze uns!

Jährlich (2026)

34 %

34% (263,24 von 775 EUR)

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