Wetterfuchsbutton Script für userChrome.js

Schrauberecke: Hier geht es um optische und funktionelle Veränderungen (ohne Themes oder Personas) von Firefox oder von Webseiten per CSS-Codes oder JavaScript.
Benutzeravatar
Endor
Senior-Mitglied
Beiträge: 11909
Registriert: Fr, 20. Apr 2007 15:41
Wohnort: Irgendwo ganz weit im Süden und doch mitten in den Bergen
Kontaktdaten:

Re: Wetterfuchsbutton Script für userChrome.js

#841

Beitrag von Endor » Sa, 03. Feb 2018 13:06

Ja kann ich betätigen, habe es oben bereits geändert.
Ab Firefox 58.0.1 geht der Wetterfuchs im Moment nicht mehr.
Auch im aktuellen Nightly nicht.
Leider.
Mfg.
Endor
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0.1
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:61.0) Gecko/Firefox/61.0b6
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:62.0) Gecko/Firefox/62.0a1

OS: Windows 7 H. P. 64 Bit Versions Info Stand 19.05.2018
Kein Support per PN. Fragen bitte im Forum stellen!

Benutzeravatar
Sören Hentzschel
Administrator
Beiträge: 17291
Registriert: Mi, 23. Nov 2011 0:39
Wohnort: Salzburg
Kontaktdaten:

Re: Wetterfuchsbutton Script für userChrome.js

#842

Beitrag von Sören Hentzschel » Sa, 03. Feb 2018 14:19

Also wenn der Fehler wirklich erst seit Firefox 58.0.1 und noch nicht in Firefox 58.0 auftritt, dann gibt es eigentlich nur eine einzige Änderung, die dafür in Frage kommen kann, und das ist die Schließung einer schwerwiegenden Sicherheitslücke von Firefox:

https://www.mozilla.org/en-US/security/ ... sa2018-05/

Dazu gab es die folgende Ankündigung auf der Mailingliste:
As of bug 1432966, any HTML injected into chrome-privileged documents[1] is automatically sanitized to remove any possibility of script execution. The sanitization is whitelist-based, and only allows a limited set of HTML elements and attributes. All scripts, XUL nodes, or privileged URLs will automatically be removed. This change has been uplifted all the way to 58 release.

If you're thinking about writing new code that injects HTML strings into chrome-privileged documents, please think again. Unless it's extremely simple, it probably won't be compatible with these changes (and will also be rejected by our default ESLint rules).

Existing HTML injection in chrome documents is being gradually removed. Once that's done, the sanitization may be replaced with an outright prohibition.

-Kris

[1]: Using the usual HTML fragment creation methods such as `innerHTML`, `outerHTML`, `insertAdjacentHTML`, and `createContextualFragment`. Not, notably, when using document.write().
Inwiefern dies das Script betrifft, muss der Schreiber des Scripts beurteilen. Nur gab es neben dieser Änderung nur eine einzige andere Änderung in Firefox 58.0.1 und die betrifft etwas vollkommen anderes, kann also auf gar keinen Fall der Grund sein.

Ich bin nur über die Fehlermeldung "ReferenceError: Cc is not defined" überrascht, denn erstens sehe ich diese Fehlermeldung nicht in Zusammenhang mit dieser Änderung, zweitens erhalte ich eine andere Fehlermeldung:

Code: Alles auswählen

TypeError: Argument 1 of Range.selectNodeContents is not an object
in der Zeile:

Code: Alles auswählen

range.selectNodeContents(document.getElementById(zId));
in folgender Methode:

Code: Alles auswählen

$F: function (zId,sXml) {
    var range = document.createRange();
    range.selectNodeContents(document.getElementById(zId));
    range.collapse(false);
    range.insertNode(range.createContextualFragment(sXml.replace(/\n|\t/g, '')));
    range.detach();
}
Aber vielleicht läuft das Script ja auch gar nicht auf macOS und die Fehlermeldung ist daher eine andere. Da ich auch in früheren Versionen dieses Script nie installiert hatte, kann ich das nicht sagen.

Vielleicht hilft dieser Input ja irgendwie.

Tanni
Mitglied
Beiträge: 79
Registriert: Do, 19. Aug 2004 10:34

Re: Wetterfuchsbutton Script für userChrome.js

#843

Beitrag von Tanni » Sa, 03. Feb 2018 14:41

Sören Hentzschel hat geschrieben:
Sa, 03. Feb 2018 14:19
Ich bin nur über die Fehlermeldung "ReferenceError: Cc is not defined" überrascht, denn erstens sehe ich diese Fehlermeldung nicht in Zusammenhang mit dieser Änderung, zweitens erhalte ich eine andere Fehlermeldung:

Code: Alles auswählen

TypeError: Argument 1 of Range.selectNodeContents is not an object
Ich habe das Script bisher nie genutzt. Kann aber bestätigen das ich hier die selbe Fehlermeldung in der Konsole habe.

Benutzeravatar
Sören Hentzschel
Administrator
Beiträge: 17291
Registriert: Mi, 23. Nov 2011 0:39
Wohnort: Salzburg
Kontaktdaten:

Re: Wetterfuchsbutton Script für userChrome.js

#844

Beitrag von Sören Hentzschel » Sa, 03. Feb 2018 14:58

// Ich verstehe übrigens nicht, wieso man so etwas nicht als WebExtension umsetzt. Das ist doch ein ganz klassischer Fall für eine WebExtension. Hier geht es um nichts, was anders nicht möglich wäre (klar, es würde von der User Experience etwas anders aussehen, ist aber kein Nachteil per se), Nutzer könnten die Erweiterung bequem aktualisieren, wenn Änderungen notwendig werden, und es hätte in Firefox 58.0.1 auf gar keinen Fall ein Kompatibilitätsproblem gegeben. ;)

Benutzeravatar
Endor
Senior-Mitglied
Beiträge: 11909
Registriert: Fr, 20. Apr 2007 15:41
Wohnort: Irgendwo ganz weit im Süden und doch mitten in den Bergen
Kontaktdaten:

Re: Wetterfuchsbutton Script für userChrome.js

#845

Beitrag von Endor » Sa, 03. Feb 2018 15:17

Ich könnte mir vorstellen, dass als Erweiterung dann einiges an individuellen Anpassungsmöglichkeiten dann
verloren geht. Schließlich und endlich muss ja jeder Benutzer das Script an seine Bedürfnisse anpassen
können. Das geht mit einer Erweiterung definitiv nicht so leicht, oder wenn überhaupt nur mit
einem erheblichen Zeitaufwand für den Autor der Erweiterung. Und genau das ist ein Hauptproblem
heute es fehlt einfach die Zeit für sowas. Ein Script kann auch mal die Gemeinschaft wieder zum laufen
bringen. Eine Erweiterung nicht.
Ich hatte schon befürchtet dass es genau an dieser Änderung liegen könnte.
So wie ich das sehe, ist das ein weiterrer Schritt zum Aus für die Chrome Scripte.
Mfg.
Endor
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0.1
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:61.0) Gecko/Firefox/61.0b6
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:62.0) Gecko/Firefox/62.0a1

OS: Windows 7 H. P. 64 Bit Versions Info Stand 19.05.2018
Kein Support per PN. Fragen bitte im Forum stellen!

Benutzeravatar
Boersenfeger
Senior-Mitglied
Beiträge: 51266
Registriert: So, 21. Mär 2004 13:21
Wohnort: Brunswiek anne Oker dranne

Re: Wetterfuchsbutton Script für userChrome.js

#846

Beitrag von Boersenfeger » Sa, 03. Feb 2018 15:25

.. geben wir dem Künstler doch ein wenig Zeit... :)
Stand 22.5.2018
Mozilla/5.0 (Windows NT 6.1 Win64 x64 rv:60.0) 20100101 Firefox/60.0.1
Mozilla/5.0 (Windows NT 6.1 Win64 x64 rv:61.0) 20180517 Firefox/61.0b6
Mozilla/5.0 (Windows NT 6.1 Win64 x64 rv:62.0) 20180522 Firefox/62.0a1

Meine Füchse|Fehlersuche|Anleitung für Fragen im Forum|Sicherheitskonzept für Windowsnutzer

Benutzeravatar
Sören Hentzschel
Administrator
Beiträge: 17291
Registriert: Mi, 23. Nov 2011 0:39
Wohnort: Salzburg
Kontaktdaten:

Re: Wetterfuchsbutton Script für userChrome.js

#847

Beitrag von Sören Hentzschel » Sa, 03. Feb 2018 15:30

Alles, was anpassbar ist, könnte man über eine Einstellungs-Seite bereitstellen. Der Aufwand dafür hält sich in Grenzen, insbesondere dann, wenn einem das Design egal ist, eine "hässliche" Seite erfüllt ja auch ihren Zweck. Erheblich ist der Zeitaufwand dafür nicht. Ich sprech da aus Erfahrung, ich hab ja schon ein paar WebExtensions geschrieben. Ob nun Script oder WebExtension, am Ende ist alles JavaScript. ;)

EffPeh
Senior-Mitglied
Beiträge: 1076
Registriert: Mi, 04. Okt 2017 10:22

Re: Wetterfuchsbutton Script für userChrome.js

#848

Beitrag von EffPeh » Sa, 03. Feb 2018 16:10

Sören Hentzschel hat geschrieben:
Sa, 03. Feb 2018 15:30
Ob nun Script oder WebExtension, am Ende ist alles JavaScript. ;)
Das sehe ich ganz genauso. Eine Optionsabfrage ist nicht sonderlich aufwändig, zumal es sich bei so einer App nur um wenige Parameter handeln dürfte. Und das Styling kann man ebenfalls als Option anbieten, so wie z.B. bei Tab Center Redux. :)
Windows 10 | FF 61.0 (64-Bit) / FF 60.0 (64-Bit)

Benutzeravatar
Büssen
Senior-Mitglied
Beiträge: 912
Registriert: Sa, 03. Jul 2004 16:00
Wohnort: Eckernförde

Re: Wetterfuchsbutton Script für userChrome.js

#849

Beitrag von Büssen » Sa, 03. Feb 2018 16:19

Moin,
das hört sich ja alles ganz gut an - aber, wer gibt sich nun einen Ruck und nimmt sich dieser Sache an? :?:
Fakt ist doch: der Wetterfuchs hat bereits einen ziemlich langen und dornenreichen Weg hinter sich gebracht!
Gruß,
D. Büssen
Firefox 60.0 (WIN 7 + 10 64 bit)

EffPeh
Senior-Mitglied
Beiträge: 1076
Registriert: Mi, 04. Okt 2017 10:22

Re: Wetterfuchsbutton Script für userChrome.js

#850

Beitrag von EffPeh » Sa, 03. Feb 2018 16:23

Na, ich sicher nicht... :P
Denn mich interessiert das Wetter bzw. eine entsprechende App ungefähr so sehr wie der Sack Reis in China... :lol:
Windows 10 | FF 61.0 (64-Bit) / FF 60.0 (64-Bit)

Benutzeravatar
Sören Hentzschel
Administrator
Beiträge: 17291
Registriert: Mi, 23. Nov 2011 0:39
Wohnort: Salzburg
Kontaktdaten:

Re: Wetterfuchsbutton Script für userChrome.js

#851

Beitrag von Sören Hentzschel » Sa, 03. Feb 2018 17:20

Geht mir genauso. :P Vor allem hätte ich keine Zeit dafür, das ganze Ding umzuschreiben. Schließlich bin ich nicht der Autor des Scripts und daher nicht vertraut mit dem Code. Das macht es natürlich wesentlich einfacher, wenn man das Original geschrieben hat. Ich kann nur Hilfe der Art anbieten, dass ich konkrete Fragen beantworten kann, zum Beispiel wenn die grundlegende WebExtension-Architektur steht und dann unklar ist, wie das mit den Einstellungen funktioniert.

Benutzeravatar
Boersenfeger
Senior-Mitglied
Beiträge: 51266
Registriert: So, 21. Mär 2004 13:21
Wohnort: Brunswiek anne Oker dranne

Re: Wetterfuchsbutton Script für userChrome.js

#852

Beitrag von Boersenfeger » Sa, 03. Feb 2018 22:45

Ich wiederhole mich...
Boersenfeger hat geschrieben:
Sa, 03. Feb 2018 15:25
.. geben wir dem Künstler doch ein wenig Zeit... :)
Stand 22.5.2018
Mozilla/5.0 (Windows NT 6.1 Win64 x64 rv:60.0) 20100101 Firefox/60.0.1
Mozilla/5.0 (Windows NT 6.1 Win64 x64 rv:61.0) 20180517 Firefox/61.0b6
Mozilla/5.0 (Windows NT 6.1 Win64 x64 rv:62.0) 20180522 Firefox/62.0a1

Meine Füchse|Fehlersuche|Anleitung für Fragen im Forum|Sicherheitskonzept für Windowsnutzer

Benutzeravatar
aborix
Senior-Mitglied
Beiträge: 3980
Registriert: So, 06. Sep 2009 0:57

Re: Wetterfuchsbutton Script für userChrome.js

#853

Beitrag von aborix » So, 04. Feb 2018 0:27

Hier ist jetzt mal ein Zwischenergebnis. Testet, wie weit es funktioniert.

Code: Alles auswählen

// ==UserScript==
// @name           wetterfuchsbutton.uc.js
// @compatibility  Firefox 33. - 58
// @include        main
// @version        1.0.20171110
// ==/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:820,height:440},
    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_Pollenbelastung: {url:"https://www.wetterkontor.de/de/bio/pollenflug-erle.asp",width:478,height:590},
    DED_UVIndexVorhersage: {url:"https://www.wetterkontor.de/de/bio/uv-index.asp",width:478,height:590},
    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/image.ashx",width:568,height:530},
    DE_RegenradarPrognose: {url:"https://www.niederschlagsradar.de/images.aspx?srt=loopvorhersage&jaar=-3&regio=homepage&tijdid=&m=&d=&uhr=&mi=",width:568,height:530},
    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:"http://www.meteox.de/images.aspx?jaar=-3&voor=&soort=loop-bliksem&c=&n=&tijdid=20128241541",width:570,height:570},
    EU_RegenradarPrognose: {url:"http://db.eurad.uni-koeln.de/prognose/data/aktuell/trh_eur_1h_movd1.gif",width:518,height:518},
    WE_WetterAktuell: {url:"http://www.meteocentrale.ch/de/wetter/weltwetter.html#sytl",width:575,height:360},
    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:480},
    RE_RegenradarAktuell: {url:"https://www.niederschlagsradar.de/image.ashx?type=regioloop&regio=bln&j=&m=&d=&mi=&uhr=&bliksem=0&voor=&srt=loop1stunde&tijdid=201194154",width:568,height:530},
    RE_RegenradarPrognose: {url:"https://www.wetter.de/deutschland/regenradar-karte-brandenburg-c49p12.html",width:640,height:690},
  },
  
  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',
               ondblclick: "if (event.button === 0) { wetterfuchs.openPanel(\'MO_Doppelklick\',event,\'b\')}",
               onclick: "if (event.button === 1) {wetterfuchs.openPanel(\'MO_Mittelklick\',event,\'b\')};if (event.button === 2) {wetterfuchs.openPanel(\'MO_Rechtsklick\',event,\'b\')}",
               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]);
            return toolbaritem;
         }
      });
      var css =
        '@-moz-document domain(daswetter.com), \
                        domain(dwd.de), \
                        domain(meteocentrale.ch), \
                        domain(niederschlagsradar.de), \
                        domain(www.meteox.de), \
                        domain(msn.com), \
                        domain(wetter.faz.net), \
                        domain(wetter.de), \
                        domain(wetter.net), \
                        domain(wetterkontor.de) { \
          scrollbar {display: none !important} \
        }';
      if (gAppInfo.version.split('.')[0] <= 56) {
        css +=
          '@-moz-document url(chrome://browser/content/browser.xul) { \
            #wetterfuchs-toolbarbutton .toolbarbutton-icon {max-width: none !important} \
          }';
      };
      var cssUri = Services.io.newURI('data:text/css,' + encodeURIComponent(css), null, null);
      var SSS = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
      SSS.loadAndRegisterSheet(cssUri, SSS.AGENT_SHEET);
    } catch(e) { };
/*   
   this.$F('wetterfuchs-toolbarbutton','\
		<menupopup id="wetterfuchsmenu">\
			<menu label="DE Wetterdaten">\
				<menupopup id="wetterfuchsdatamenu">\
					<menuitem label="Wetter aktuell" oncommand="wetterfuchs.openPanel(\'DED_WetterAktuell\',event,\'p\')"/>\
					<menuitem label="Vorhersage" oncommand="wetterfuchs.openPanel(\'DED_Vorhersage\',event,\'p\')"/>\
					<menuitem label="Pollenbelastung" oncommand="wetterfuchs.openPanel(\'DED_Pollenbelastung\',event,\'p\')"/>\
					<menuitem label="UV-Index" oncommand="wetterfuchs.openPanel(\'DED_UVIndexVorhersage\',event,\'p\')"/>\
				</menupopup>\
			</menu>\
			<menu label="DE Wetterkarten">\
				<menupopup id="wetterfuchsDEmapsmenu">\
					<menuitem label="Wetter aktuell" oncommand="wetterfuchs.openPanel(\'DE_WetterAktuell\',event,\'p\')"/>\
					<menuitem label="Vorhersage" oncommand="wetterfuchs.openPanel(\'DE_Vorhersage\',event,\'p\')"/>\
					<menuitem label="Unwetterwarnung" oncommand="wetterfuchs.openPanel(\'DE_Unwetterwarnung\',event,\'p\')"/>\
					<menuitem label="Regenradar aktuell" oncommand="wetterfuchs.openPanel(\'DE_RegenradarAktuell\',event,\'p\')"/>\
					<menuitem label="Regenradarprognose" oncommand="wetterfuchs.openPanel(\'DE_RegenradarPrognose\',event,\'p\')"/>\
				</menupopup>\
			</menu>\
			<menu label="EU Wetter">\
				<menupopup id="wetterfuchsEUmapsmenu">\
					<menuitem label="Aktuell und Vorhersage" oncommand="wetterfuchs.openPanel(\'EU_AktuellVorhersage\',event,\'p\')"/>\
					<menuitem label="Unwetterwarnung" oncommand="wetterfuchs.openPanel(\'EU_Unwetterwarnung\',event,\'p\')"/>\
					<menuitem label="Regenradar aktuell" oncommand="wetterfuchs.openPanel(\'EU_RegenradarAktuell\',event,\'p\')"/>\
					<menuitem label="Regenradarprognose" oncommand="wetterfuchs.openPanel(\'EU_RegenradarPrognose\',event,\'p\')"/>\
				</menupopup>\
			</menu>\
			<menu label="Welt Wetter">\
				<menupopup id="wetterfuchsWEmapsmenu">\
					<menuitem label="Aktuell und Vorhersage" oncommand="wetterfuchs.openPanel(\'WE_WetterAktuell\',event,\'p\')"/>\
				</menupopup>\
			</menu>\
			<menu label="Regionales Wetter">\
				<menupopup id="wetterfuchsRegiomapsmenu">\
					<menuitem label="Aktuell und Vorhersage" oncommand="wetterfuchs.openPanel(\'RE_AktuellVorhersage\',event,\'p\')"/>\
					<menuitem label="Unwetterwarnung" oncommand="wetterfuchs.openPanel(\'RE_Unwetterwarnung\',event,\'p\')"/>\
					<menuitem label="Regenradar aktuell" oncommand="wetterfuchs.openPanel(\'RE_RegenradarAktuell\',event,\'p\')"/>\
					<menuitem label="Regenradarprognose" oncommand="wetterfuchs.openPanel(\'RE_RegenradarPrognose\',event,\'p\')"/>\
				</menupopup>\
			</menu>\
		</menupopup>\
	');
*/
    let mymenu = document.createElement('menupopup');
    mymenu.id = 'wetterfuchsmenu';
    document.getElementById("wetterfuchs-toolbarbutton").appendChild(mymenu);
  
    function appendMenu(label, id, Items) {
      let menu = document.createElement('menu');
      menu.setAttribute('label', label);
      mymenu.appendChild(menu);
      let menupopup = document.createElement('menupopup');
      menupopup.id = id;
      menu.appendChild(menupopup);
      for (let item of Items) {
        let menuitem = document.createElement('menuitem');
        menuitem.setAttribute('label', item[0]);
        menuitem.setAttribute('oncommand', 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\')"]]
    );
    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 und Vorhersage", "wetterfuchs.openPanel(\'WE_WetterAktuell\',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();
/*    
    this.$F('mainPopupSet','\
		<panel id="wetterfuchs-panel" noautohide="false" type="arrow" onpopuphiding="wetterfuchs.clearPanel()" onmousedown="if (event.button === 1) {wetterfuchs.openUrlFromPanel()}">\
			<vbox>\
				<browser type="content" flex="1" id="wetterfuchs-iframe" src="' + this.wfthrobber + '" />\
			</vbox>\
		</panel>'
    );
*/       
    let panel = document.createElement('panel');  
    panel.id = "wetterfuchs-panel";
    panel.setAttribute('noautohide', "false"); 
    panel.setAttribute('type', "arrow"); 
    panel.setAttribute('onpopuphiding', "wetterfuchs.clearPanel()"); 
    panel.setAttribute('onmousedown', "if (event.button == 1) wetterfuchs.openUrlFromPanel()");       
    document.getElementById('mainPopupSet').appendChild(panel);
    
    let vbox = document.createElement('vbox');    
    panel.appendChild(vbox);
    
    let browser = document.createElement('browser');  
    browser.id = "wetterfuchs-iframe";
    browser.setAttribute('type', 'content');     
    browser.setAttribute('flex', '1'); 
    browser.setAttribute('src', this.wfthrobber); 
    vbox.appendChild(browser);
    
  },
  
  myEventhandler: function (e,toDo) {
    switch (toDo) {
     case "p":
      e.preventDefault();
      break;
     case "s":
      e.stopPropagation();
      break;
     case "b":
      e.preventDefault();
      e.stopPropagation();
      break;
    }
  },
  
  clearPanel: function() {
    var myiframe = document.getElementById("wetterfuchs-iframe");
    myiframe.parentNode.width = 146;
    myiframe.parentNode.height = 146;
    myiframe.setAttribute("src",this.wfthrobber);
  },
  
  openUrlFromPanel: function() {
    getBrowser().selectedTab = getBrowser().addTab(document.getElementById("wetterfuchs-iframe").getAttribute("src"));
    document.getElementById("wetterfuchs-panel").hidePopup();
  },
  
  openPanel: function(bezeichner,e,toDo) {
    this.myEventhandler(e,toDo);    
    var mymenu = document.getElementById("wetterfuchsmenu");
    if (mymenu.state === "open" && e.button !== 0) return;
    mymenu.hidePopup();
    var myiframe = document.getElementById("wetterfuchs-iframe");
    myiframe.parentNode.width = this.urlobj[bezeichner]["width"];
    myiframe.parentNode.height = this.urlobj[bezeichner]["height"];
    myiframe.setAttribute("src",this.urlobj[bezeichner]["url"]);
    var mypanel = document.getElementById("wetterfuchs-panel");
    mypanel.openPopup(document.getElementById("wetterfuchs-toolbarbutton"));
  },
/*  
  $F: function (zId,sXml) {
    var range = document.createRange();
    range.selectNodeContents(document.getElementById(zId));
    range.collapse(false);
    range.insertNode(range.createContextualFragment(sXml.replace(/\n|\t/g, '')));
    range.detach();
  }
*/
};

if (location == 'chrome://browser/content/browser.xul')
  wetterfuchs.init();


Benutzeravatar
Sören Hentzschel
Administrator
Beiträge: 17291
Registriert: Mi, 23. Nov 2011 0:39
Wohnort: Salzburg
Kontaktdaten:

Re: Wetterfuchsbutton Script für userChrome.js

#854

Beitrag von Sören Hentzschel » So, 04. Feb 2018 9:47

Meine Beobachtung:

- Installation des Scripts
- Neustart von Firefox
- Icon in Oberfläche geschoben
- Button hat nicht auf Klicks reagiert
- weiterer Neustart von Firefox
- Button funktioniert

Benutzeravatar
Büssen
Senior-Mitglied
Beiträge: 912
Registriert: Sa, 03. Jul 2004 16:00
Wohnort: Eckernförde

Re: Wetterfuchsbutton Script für userChrome.js

#855

Beitrag von Büssen » So, 04. Feb 2018 10:11

aborix hat geschrieben:
So, 04. Feb 2018 0:27
Hier ist jetzt mal ein Zwischenergebnis. Testet, wie weit es funktioniert.
Moin,
nun läuft der Wetterfuchs wieder auf Anhieb. :klasse:
Die Werte von "Brandenburg" muss ich nur noch auf "Scheswig-Holstein" umändern.
Habe vorerst mal mit meinen mobilen Versionen 58.0.1 und 59.0.b6 getestet.
@ aborix >>Vielen Dank für die umgehende Bearbeitung! :)
Gruß,
D. Büssen
Firefox 60.0 (WIN 7 + 10 64 bit)

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste