lichen Glückwunsch und alles Liebe und Gute.
Beiträge von Mira_Belle
-
-
Endor
Da für mich die Symbole fest zum Skript gehören,
habe ich das CSS auch da reingepackt!
Und was ich über base64 denke, ist bekannt.
Also ganz einfach folgenden Code ans Ende des Skripts einfügen.CSS
Alles anzeigen}, 30000); let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'image')); let css =` #wetterfuchs-toolbarbutton .toolbarbutton-menu-dropmarker { display: none ! important; } /* Gemeinsame Basis für ALLE menu/menuitem-Elemente in diesem Kontext */ menu[label^="DE Wetter"], menu[label^="DE Wetter"] menuitem, menu[label="DE Wetterkarten"], menu[label="DE Wetterkarten"] menuitem, menu[label="EU Wetter"], menu[label="EU Wetter"] menuitem, menu[label="Welt Wetter"], menu[label="Welt Wetter"] menuitem, menu[label="Blitzortung"], menu[label="Blitzortung"] menuitem, menu[label="Regionales Wetter"], menu[label="Regionales Wetter"] menuitem { appearance: none !important; background-position: 4px 50% !important; background-repeat: no-repeat !important; } /* Hover-Effekt zentral */ /* menu[label^="DE Wetter"]:hover, menu[label^="DE Wetter"] menuitem:hover, menu[label="DE Wetterkarten"]:hover, menu[label="DE Wetterkarten"] menuitem:hover, menu[label="EU Wetter"]:hover, menu[label="EU Wetter"] menuitem:hover, menu[label="Welt Wetter"]:hover, menu[label="Welt Wetter"] menuitem:hover, menu[label="Blitzortung"]:hover, menu[label="Blitzortung"] menuitem:hover, menu[label="Regionales Wetter"]:hover, menu[label="Regionales Wetter"] menuitem:hover { background-color: #ecf0f6 !important; } */ menu[label="DE Wetterdaten"] { background-image: url("${ProfilePath}/Wetterdaten_1.png") !important; } menu[label="DE Wetterdaten"] menuitem[label="Wetter aktuell"] { background-image: url("${ProfilePath}/Wetterdaten_2.png") !important; } menu[label="DE Wetterdaten"] menuitem[label="Vorhersage"] { background-image: url("${ProfilePath}/Wetterdaten_3.png") !important; } menu[label="DE Wetterdaten"] menuitem[label="Pollenbelastung"] { background-image: url("${ProfilePath}/Wetterdaten_4.png") !important; } menu[label="DE Wetterdaten"] menuitem[label="Wetterlage"] { background-image: url("${ProfilePath}/Wetterdaten_5.png") !important; } menu[label="DE Wetterdaten"] menuitem[label="UV-Index"] { background-image: url("${ProfilePath}/Wetterdaten_6.png") !important; } menu[label="DE Wetterdaten"] menuitem[label="Gesund. Beschwerden"] { background-image: url("${ProfilePath}/Wetterdaten_7.png") !important; } menu[label="DE Wetterdaten"] menuitem[label="Thermische Belastung"] { background-image: url("${ProfilePath}/Wetterdaten_8.png") !important; } menu[label="DE Wetterdaten"] menuitem[label="Flusspegel"] { background-image: url("${ProfilePath}/Wetterdaten_9.png") !important; } menu[label="DE Wetterdaten"] menuitem[label="Regenradar"] { background-image: url("${ProfilePath}/Wetterdaten_10.png") !important; } menu[label="DE Wetterdaten"] menuitem[label="Regenradar Vorhersage"] { background-image: url("${ProfilePath}/Wetterdaten_11.png") !important; } menu[label="DE Wetterdaten"] menuitem[label="Satellitenbild"] { background-image: url("${ProfilePath}/Wetterdaten_12.png") !important; } menu[label="DE Wetterkarten"] { background-image: url("${ProfilePath}/Wetterkarten_1.png") !important; } menu[label="DE Wetterkarten"] menuitem[label="Wetter aktuell"] { background-image: url("${ProfilePath}/Wetterkarten_2.png") !important; } menu[label="DE Wetterkarten"] menuitem[label="Vorhersage"] { background-image: url("${ProfilePath}/Wetterkarten_3.png") !important; } menu[label="DE Wetterkarten"] menuitem[label="Unwetterwarnung"] { background-image: url("${ProfilePath}/Wetterkarten_4.png") !important; } menu[label="DE Wetterkarten"] menuitem[label="Regenradar aktuell"] { background-image: url("${ProfilePath}/Wetterkarten_5.png") !important; } menu[label="DE Wetterkarten"] menuitem[label="Regenradarprognose"] { background-image: url("${ProfilePath}/Wetterkarten_6.png") !important; } menu[label="EU Wetter"] { background-image: url("${ProfilePath}/Wetter_1.png") !important; } menu[label="EU Wetter"] menuitem[label="Aktuell und Vorhersage"] { background-image: url("${ProfilePath}/Wetter_2.png") !important; } menu[label="EU Wetter"] menuitem[label="Regenradar aktuell"] { background-image: url("${ProfilePath}/Wetter_3.png") !important; } menu[label="EU Wetter"] menuitem[label="Unwetterwarnung"] { background-image: url("${ProfilePath}/Wetter_4.png") !important; } menu[label="EU Wetter"] menuitem[label="Regenradarprognose"] { background-image: url("${ProfilePath}/Wetter_5.png") !important; } menu[label="Welt Wetter"] { background-image: url("${ProfilePath}/Welt_1.png") !important; } menu[label="Welt Wetter"] menuitem[label="Aktuell"] { background-image: url("${ProfilePath}/Welt_2.png") !important; } menu[label="Welt Wetter"] menuitem[label="Vorhersage"] { background-image: url("${ProfilePath}/Welt_3.png") !important; } menu[label="Blitzortung"] { background-image: url("${ProfilePath}/Blitz_1.png") !important; } menu[label="Blitzortung"] menuitem[label="Mitteleuropa"] { background-image: url("${ProfilePath}/Blitz_2.png") !important; } menu[label="Blitzortung"] menuitem[label="Europa"] { background-image: url("${ProfilePath}/Blitz_3.png") !important; } menu[label="Blitzortung"] menuitem[label="Welt"] { background-image: url("${ProfilePath}/Blitz_4.png") !important; } menu[label="Regionales Wetter"] { background-image: url("${ProfilePath}/Regio_1.png") !important; } menu[label="Regionales Wetter"] menuitem[label="Aktuell und Vorhersage"] { background-image: url("${ProfilePath}/Regio_2.png") !important; } menu[label="Regionales Wetter"] menuitem[label="Unwetterwarnung"] { background-image: url("${ProfilePath}/Regio_3.png") !important; } menu[label="Regionales Wetter"] menuitem[label="Regenradar aktuell"] { background-image: url("${ProfilePath}/Regio_4.png") !important; } menu[label="Regionales Wetter"] menuitem[label="Regenradarprognose"] { background-image: url("${ProfilePath}/Regio_5.png") !important; } `; const sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService); const uri = Services.io.newURI('data:text/css,' + encodeURIComponent(css)); sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); })();Die Grafiken gehören in den Ordner "image" unter "chrome"

images.zip -
REisele Also hier bei mir wird der Link im FF ganz normal geöffnet!
Soll aber nichts heißen.Ich vermute, Du hast bei irgendeinem Onlineanbieter Dein E-Mailpostfach eingerichtet.
Was passiert, wenn Du Dich da direkt einloggst und Deine E-Mail abrufst, bzw. öffnest und
da den Link anklickst?Wenn es funktioniert, mal ein alternatives E-Mailprogramm ausprobieren.
Eventuell gibt es ja eines, dass portable funktioniert, das ja nur erst einmal für einen Test!
Ergänzung!
Gibt es!
Internet | PortableApps.com
Runterscrollen zu den E-Mail-Clients.
Bitte aber diese Äpps nicht dauerhaft nutzen!
Die sind alle total veraltet.
Es soll ja nur getestet werden, ob Dein installierter Thunderbird den Link irgendwie falsch an den Firefox übergibt!
Als Gegentest könntest Du auch kurzzeitig mal einen anderen Browser auf Standard setzen. -
AMW81 Such mal im Netz nach dem kleinen Tool "Unlocker".
Oh, sehe grade, ich habe einen Link.
UNLOCKER 1.9.2 BY CEDRICK 'NITCH' COLLOMB
Weiter unten gibt es sogar eine portable Version. -
TheRave Danke für den Link,
siehste, da bin ich doch falsch gewesen, mir meiner "137",
und Deiner Erklärung. -
Da blickt niemand mehr durch – wie ja auch die Nachfrage zeigt.
Mh, ok, nehmen wir an, es ist so, TheRaves Information bezieht sich auf das "tote" Skript aus Beitrag #1.
Dennoch ist es so, dass es hier in diesem Thread mittlerweile drei Versionen für ein Skript für die Tabs gibt.
Daher meine, so finde ich, berechtigte Frage und Anmerkung.
Und bevor es nun eskaliert oder irgendwie drüber und drunter geht, bin ich jetzt raus!
Soll ein jeder mit der Information von TheRave machen, was er/sie will. -
Und so ganz nebenbei würde hier in diesem Thread ja auch das Skript von Merci chao vorgestellt,
der Link in dem Beitrag wurde dann aber wieder gelöscht.
Aber Merci chao hat sich ja direkt hier gemeldet und es wieder verlinkt!
Im Übrigen hat er vor zwei Tagen sein Skript überarbeitet.
Eigentlich finde ich es nicht so schlimm, wenn es hier um ähnliche Skripte geht, man sollte halt nur auf jenes,
auf das eine Information verweist, auch entweder verlinken oder es hier dann halt mit den Korrekturen neu posten. -
Für alle Nutzer des scripts von Alice0775
Diese Information ist schon sehr gut, aber besser wäre z.B. ein direkter Link auf das betreffende Skript gewesen.
So muss jemand, der das Skript noch nicht nutzt, sich erst einen Wolf suchen, um es ausprobieren zu können.
Finde ich.
Nachtrag.
Auf "https://github.com/alice0775/userChrome.js" ist leider nur eine verdammt alte Version zu finden!
Endor scheint da eine etwas aktueller Version vorzuhalten.
userChrome.js/Multirowtabs/Firefox 134/MultiRowTabLiteforFx.uc.js at master · Endor8/userChrome.jsSkripte für die Firefox-Erweiterung userChromeJS. Contribute to Endor8/userChrome.js development by creating an account on GitHub.github.com
Aber ich vermute jetzt mal, hier on Board gibt es bestimmt noch etwas Aktuelleres,
auf das sich dann Deine Information bezieht, oder? -
-
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 -
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? -
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?
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 -
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?
-
Und schon etwas älter!
Mate Translate – Übersetzer, Wörterbuch – Holen Sie sich diese Erweiterung für 🦊 Firefox (de)Laden Sie Mate Translate – Übersetzer, Wörterbuch für Firefox herunter. Ultimativer Übersetzer für Webseiten, ausgewählten Text und Netflix-Untertiteln. 103…addons.mozilla.org -
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); })(); -
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! -
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. -
Himmel grrrr.
Das gibt es doch gar nicht!
Sieben, acht oder mehr ...
und jetzt hängt es wieder! -
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();