Eben getestet. 5 bis 6 mal geht es hier dann wieder das Selbe...
Mal sehen. Auf jedenfalls großartige Leistung von Dir.
Mfg.
Endor
Wetterfuchsbutton Script für userChrome.js
-
loshombre -
4. September 2011 um 17:54 -
Erledigt
-
-
Ob es jetzt läuft?
Bisher klappt es!JavaScript
Alles anzeigen// ==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(); -
Teste es zur Zeit noch bis
jetzt prima.
Wieder das selbe, aber um einiges später... -
Himmel grrrr.
Das gibt es doch gar nicht!
Sieben, acht oder mehr ...
und jetzt hängt es wieder! -
ja genau grrrrrrr.......
-
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. -
Was mir aufgefallen ist, gerät der Firefox in den Hintergrund, oder wird er auch nur kurz minimiert, hängt das Skript.
Ja genau so verhält es sich hier.
Lass gut sein für heute.
Vielleicht findest du ja morgen doch noch die Lösung. Auf jeden Fall vielen vielen Dank für Deine Mühe. Mfg. Endor
-
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! -
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
Alles anzeigen// ==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); })(); -
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
Alles anzeigen// ==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); } })(); })();Eventuell kann man ja mit dem CSS die Seiten noch etwas verschönern?
-
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
Alles anzeigenTypeError: 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 -
Dass der verbesserte Trackingschutz da aktiv wird und dazwischen grätscht,
oder liege ich da total falsch und etwas anderes ist die Ursache?Was die Ursache für dieses Problem ist, kann ich auch nicht sagen. Aber ich glaube nicht, dass der Trackingschutz etwas damit zu tun hat. Dadurch werden vielleicht einzelne Skripte der Seiten gesperrt, aber so wie sich das Problem darstellt, wird ja ab einem bestimmten Zeitpunkt "gar nichts" mehr dargestellt und zwar auf keiner einzelnen Webseite. Warum sollte der Trackingschutz so etwas veranlassen?
-
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. -
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?Ich erkenne in den Konsolen-Meldungen nichts, was mich darauf schließen lässt, dass es am Tracking-Schutz liegt. Aber wäre es so, müsste es ja helfen, die entsprechenden Domains als Ausnahmen zu hinterlegen. Außerdem schreibst du, dass in einem neuen Fenster nichts blockiert wird. Und so, wie ich die Beiträge gelesen habe, klappt es manchmal und dann plötzlich nicht mehr? Das passt beides nicht zu der Erklärung, denn der Tracking-Schutz würde immer greifen.
-
So habe hier jetzt eine Version die funktioniert.
Nein nicht von mir, aber jemand hat mir geholfen.JavaScript
Alles anzeigen// ==UserScript== // @name wetterfuchsbutton.uc.js // @compatibility Firefox 149+ // @include main // @version 1.1.20260207 // @note Anpassung von FuchsFan - camp-Firefox.de/forum // ==/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:770,height:700}, 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", createBtn: function() { try { CustomizableUI.createWidget({ id: 'wetterfuchs-toolbarbutton', type: 'custom', defaultArea: CustomizableUI.AREA_NAVBAR, onBuild: function(aDocument) { let doc = aDocument || document; let toolbaritem = doc.createXULElement('toolbarbutton'); let 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 (let a in attributes) toolbaritem.setAttribute(a, attributes[a]); appendMenupopup(toolbaritem); toolbaritem.addEventListener('contextmenu', (event) => { event.preventDefault(); event.stopPropagation(); return false; }); toolbaritem.addEventListener('dblclick', event => { if (event.button === 0) { wetterfuchs.openPanel('MO_Doppelklick', event, 'b'); } }); toolbaritem.addEventListener('click', event => { if (event.button === 1) { wetterfuchs.openPanel('MO_Mittelklick', event, 'b'); } else if (event.button === 2) { wetterfuchs.openPanel('MO_Rechtsklick', event, 'b'); } }); return toolbaritem; } }); } catch(e) { } function appendMenupopup(toolbaritem) { let doc = toolbaritem.ownerDocument; let mymenu = doc.createXULElement('menupopup'); mymenu.id = 'wetterfuchsmenu'; toolbaritem.appendChild(mymenu); function appendMenu(label, id, Items) { let menu = doc.createXULElement('menu'); menu.setAttribute('label', label); mymenu.appendChild(menu); let menupopup = doc.createXULElement('menupopup'); menupopup.id = id; menu.appendChild(menupopup); for (let item of Items) { let menuitem = doc.createXULElement('menuitem'); menuitem.setAttribute('label', item[0]); menuitem.addEventListener('command', 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 doc = document; let panel = doc.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 = doc.getElementById('mainPopupSet').appendChild(panel); let vbox = doc.createXULElement('vbox'); 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', 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 || !myiframe.parentNode) return; myiframe.parentNode.width = 146; myiframe.parentNode.height = 146; myiframe.setAttribute("src", this.wfthrobber); }, openUrlFromPanel: function() { let url = document.getElementById("wetterfuchs-iframe").getAttribute("src"); openWebLinkIn(url, "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"); if (!myiframe) return; myiframe.setAttribute("src", "about:blank"); setTimeout(() => { this.setIFrameSize(this.urlobj[bezeichner].width, this.urlobj[bezeichner].height); myiframe.setAttribute("src", this.urlobj[bezeichner].url); let mypanel = document.getElementById("wetterfuchs-panel"); let anchor = document.getElementById("wetterfuchs-toolbarbutton"); if (mypanel && anchor) { mypanel.openPopup(anchor, "after_end", 0, 0, false, false); } }, 50); }, setIFrameSize: function( _width, _height) { let 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();Bitte mal testen.
Mfg.
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? -
Da ist aber immer noch der Bug drinnen, der die Links im Menü einfach ignoriert!
Was meinst Du damit genau? Denn hier funktioniert auch das Menü,Linksklick Menü öffnet sich, Einträge bei klick funktionieren auch.Nach Test, weiß ich jetzt was Du meinst.
Hier stand security.allow_unsafe_dangerous_privileged_evil_eval auf true.
Daher keine Probleme. Ja wenn Du möchtest kannst Du das gerne beheben.
Mfg.
Endor -
Bitte mal testen.
Also hier funktioniert es jetzt ohne Fehler, soweit ich das beurteilen und testen kann...
.Übrigens sind in der alten, fehlerbehafteten Version die Webseiten im Panel/Frame alle noch funktionsfähig. Das kann man testen, wenn man mit der Maus mal blind umherfährt. Dann werden die Links unten angezeigt und die Mausform ändert sich. Es wurde also plötzlich nur die Sichtbarkeit geändert...
So wie ich das sehe wurden zusätzliche Attribute beim Aufruf des Browser-Objekts hinzugefügt. Ob das wirklich alles ist, habe ich nicht überprüft bzw. getestet.
-
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
Alles anzeigen// ==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); })();
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 -
Hallo Mira_Belle.
Vielen Dank, funktioniert prima.Alles perfekt.
Das mit dem Symbol wollte ich schon lange ändern.
Besonderen Dank dafür.!!!!



Vielen Dank.
Mfg.
Endor -