1. Nachrichten
  2. Forum
    1. Unerledigte Themen
    2. Forenregeln
  3. Spenden
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. camp-firefox.de
  2. aborix

Beiträge von aborix

  • Der Glückwunsch-Thread

    • aborix
    • 11. Februar 2018 um 11:47

    Alles Gute! :)

  • Tab sperren

    • aborix
    • 9. Februar 2018 um 23:42
    Zitat von Falck


    ich verwende dein 1. gepostetes Skript.
    Eine Markierung eines gesperrten Tabs lässt sicht nicht einbauen?

    Ist jetzt eingebaut, funktioniert aber noch nicht ganz. Beim Anheften, Ablösen und Verschieben bleibt zwar die Sperre bestehen, die Markierung aber nicht. Die Markierung ist ein rotes Quadrat, man kann natürlich auch eine andere Grafik nehmen.

    Code
    (function() {
    
    
      if (location != 'chrome://browser/content/browser.xul')
        return;
    
    
      let tabContextMenu = document.getElementById('tabContextMenu');
    
    
      let lockItem = document.createElement('menuitem');
      lockItem.id = 'context_lockTab';
      lockItem.setAttribute('label', 'Tab sperren');
      lockItem.setAttribute('oncommand', ' \
        let tab = TabContextMenu.contextTab; \
        tab.locked = true; \
        let image = document.createElement("image"); \
        image.setAttribute("anonid", "locked-icon"); \
        image.setAttribute("src", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKBAMAAAB/HNKOAAAABGdBTUEAALGPC/xhBQAAADBQTFRFAAAAgAAAAIAAgIAAAACAgACAAICAgICAwMDA/wAAAP8A//8AAAD//wD/AP//////ex+xxAAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAA5JREFUGNNjmAkCDGSRAIDlHeNaYTFnAAAAAElFTkSuQmCC"); \
        let closeButton = document.getAnonymousElementByAttribute(tab, "anonid", "close-button"); \
        closeButton.parentNode.appendChild(image); \
      ');
    
    
      let refItem = document.getElementById('context_pinTab');
      tabContextMenu.insertBefore(lockItem, refItem);
    
    
      let unlockItem = document.createElement('menuitem');
      unlockItem.id = 'context_unlockTab';
      unlockItem.setAttribute('label', 'Tab entsperren');
      unlockItem.setAttribute('oncommand', ' \
        let tab = TabContextMenu.contextTab; \
        tab.locked = false; \
        let image = document.getAnonymousElementByAttribute(tab, "anonid", "locked-icon"); \
        if (image) \
          image.parentNode.removeChild(image); \
      ');
    
    
      tabContextMenu.insertBefore(unlockItem, refItem);
    
    
      tabContextMenu.addEventListener('popupshowing', function(event) {
        if (event.target == this) {
          let locked = TabContextMenu.contextTab.locked;
          lockItem.hidden = locked;
          unlockItem.hidden = !locked;
        };
      });
    
    
      eval('gBrowser.removeTab = ' +
        gBrowser.removeTab.toString().replace('(aTab, aParams) {', '$& if (aTab.locked) return;')
      );
    
    
    })();
    Alles anzeigen
  • Tab sperren

    • aborix
    • 8. Februar 2018 um 21:37

    Ich weiß es nicht; ich sehe jedenfalls nicht, wie.

  • Lade-Reihenfolge der ".uc.js" Scripte, neue Erkenntnis

    • aborix
    • 8. Februar 2018 um 21:33

    Steht devtools.webconsole.timestampMessages auf true, dann sieht man in der Browserkonsole, wann die Skripte geladen werden. Das funktioniert nur mit der neueren Variante zum Skripte Laden.

  • Meldungen über Spam im Forum

    • aborix
    • 8. Februar 2018 um 07:28

    https://www.camp-firefox.de/forum/memberli…profile&u=98464

  • FF 58.x Konsole in Inspektor Tab

    • aborix
    • 5. Februar 2018 um 17:12

    Gerne. :)

  • FF 58.x Konsole in Inspektor Tab

    • aborix
    • 5. Februar 2018 um 17:09

    Mit der Escape-Taste oder dieser Schaltfläche:

    [attachment=0]Unbenannt.png[/attachment]

    Bilder

    • Unbenannt.png
      • 309 Byte
      • 36 × 34
  • Wetterfuchsbutton Script für userChrome.js

    • aborix
    • 5. Februar 2018 um 15:19

    Endor:
    Ja, gib es so weiter.
    Hoffentlich gefällt er auch loshombre, es ist jetzt ja einiges anders. :)

  • Wetterfuchsbutton Script für userChrome.js

    • aborix
    • 5. Februar 2018 um 15:09
    Zitat von Endor


    Bei Rechtsklick öffnet sich neben dem Panel auch noch immer das Symbolleistenkontextmenü.
    Liese sich, das Öffnen des Symbolleistenkontextmenüs eventuell unterbinden - verhindern?

    Ja, nach Zeile 50:

    Code
    tooltiptext: 'Lokale und globale Wetter Infos',

    fügen wir diese Zeile ein:

    Code
    oncontextmenu: "return false",
  • Tab sperren

    • aborix
    • 5. Februar 2018 um 00:01

    Ein Mitglied hat mich per PN gefragt, ob sich auch das Laden einer neuen Seite verhindern lässt. Da dieses Mitglied den Empfang von PNs deaktiviert hat, antworte ich hier. Ich kenne derzeit keinen Weg, diese Funktion in das Skript aufzunehmen. Falls ich einen finde, melde ich mich hier.

  • Wetterfuchsbutton Script für userChrome.js

    • aborix
    • 4. Februar 2018 um 23:45

    So, Freunde des Wetterfuchses, hier ist er wieder, gewaschen, Nase geputzt und gekämmt:

    Code
    // ==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]);
                appendMenupopup(toolbaritem);
                return toolbaritem;
             }
          });
          addCss();
        } catch(e) { };
    
    
        function appendMenupopup(toolbaritem) {
          let mymenu = document.createElement('menupopup');
          mymenu.id = 'wetterfuchsmenu';
          toolbaritem.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\')"]
          ]);
        };
    
    
        function addCss() {
          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);
        };
      },
    
    
      init: function() {
        this.createBtn();
        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"));
      },
    
    
    };
    
    
    if (location == 'chrome://browser/content/browser.xul')
      wetterfuchs.init();
    Alles anzeigen
  • Wetterfuchsbutton Script für userChrome.js

    • aborix
    • 4. Februar 2018 um 00:27

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

    Code
    // ==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();
    Alles anzeigen
  • Updates prüfen Button

    • aborix
    • 2. Februar 2018 um 12:05

    Die Zeilen 4 und 5 sind hinzugekommen:

    Code
    if (CustomizableUI.getPlacementOfWidget('addons-update-button'))
        return;


    Das spielt nur ab dem zweiten Fenster eine Rolle. Damit wird abgefragt, ob der Button bereits existiert und wenn ja, wird nicht versucht, ihn zu erzeugen. Ohne die Abfrage wird später festgestellt, dass er bereits existiert und das Erzeugen wird abgebrochen.

  • Updates prüfen Button

    • aborix
    • 2. Februar 2018 um 10:58
    Zitat von Boersenfeger


    kann das Teil ggf. mit einem aussagekräftigen Namen versehen und auf GitHub in unsere Liste eingepflegt werden?

    Von mir aus ja. Es kann z.B. "Addons Update Check Button" heissen.
    Ich habe noch eine Kleinigkeit geändert und das auch im Code in #2 eingetragen.

  • neue Lesezeichen werden unter weitere Lesezeichen gespeichert und nicht wie bisher im Lesezeichen-Menü

    • aborix
    • 2. Februar 2018 um 00:18

    Hallo,

    teste die Erweiterung Default Bookmark Folder.

  • Updates prüfen Button

    • aborix
    • 1. Februar 2018 um 11:02

    Bitte, gern geschehen. :)

  • Updates prüfen Button

    • aborix
    • 1. Februar 2018 um 10:28

    Hallo,

    teste:

    Code
    (function() {
      if (location != 'chrome://browser/content/browser.xul')
        return;
      if (CustomizableUI.getPlacementOfWidget('addons-update-button'))
        return;
    
    
      try {
        CustomizableUI.createWidget({
          id: 'addons-update-button',
          defaultArea: CustomizableUI.AREA_NAVBAR,
          label: 'Add-ons Update',
          tooltiptext: 'Add-ons Update',
          onCommand: onCommand,
          onCreated: function(button) {
            button.style.listStyleImage = 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAdUlEQVQokZVSwRHAIAgLPYfoXs7RCTpG53Avt7APrhaFU8gLMEEJAkEQgFbc7IxkVjt0r6Sp7VIVITumBpKt00FA2ThmjXzkfMMWO8EZFSj8LrUyjsG9b9DaJXq+qAIVxEUxtLHpaXE95dj1NcK2rmbwaGJ4Af0tIg00j/6iAAAAAElFTkSuQmCC)';
          }
        });
      } catch(e) {
        return;
      };
    
    
      function onCommand(event) {
        let frameScript = function() {
          addEventListener('pageshow', function onPageshow(event) {
            if (event.target.location != 'about:addons')
              return;
            content.gViewController.doCommand('cmd_findAllUpdates');
            content.gViewController.doCommand('cmd_goToAvailableUpdates');
            removeEventListener('pageshow', onPageshow);
          });
        };
        let frameScriptURI = 'data:,(' + frameScript.toString() + ')()';
        let window = event.target.ownerGlobal;
        window.openUILinkIn('about:addons', 'tab');
        window.gBrowser.selectedBrowser.messageManager.loadFrameScript(frameScriptURI, true);
      };
    
    
    })();
    Alles anzeigen
  • im lesezeichen menü speichern

    • aborix
    • 27. Januar 2018 um 07:51

    Hallo,

    funktioniert dieses Skript ?

  • Tab sperren

    • aborix
    • 26. Januar 2018 um 19:15
    Zitat von Pentomino


    Lässt sich das so einrichten, dass zB. ein angepinnter Tab nach dem Neustart von Firefox immer noch "gesperrt" ist?

    Nein. Auch beim Verschieben in ein anderes Fenster geht die Sperrung verloren.

    Es lässt sich jedoch machen, dass beim Sperren ein Tab automatisch auch angeheftet wird und beim Ablösen automatisch entsperrt wird (Anheften ohne Sperren ist weiterhin möglich):

    Code
    (function() {
      if (location != 'chrome://browser/content/browser.xul')
        return;
    
    
      let tabContextMenu = document.getElementById('tabContextMenu');
    
    
      let lockItem = document.createElement('menuitem');
      lockItem.id = 'context_lockTab';
      lockItem.setAttribute('label', 'Tab sperren');
      lockItem.setAttribute('oncommand',
        'gBrowser.pinTab(TabContextMenu.contextTab); TabContextMenu.contextTab.locked = true');
      let refItem = document.getElementById('context_pinTab');
      tabContextMenu.insertBefore(lockItem, refItem);
    
    
      let unlockItem = document.createElement('menuitem');
      unlockItem.id = 'context_unlockTab';
      unlockItem.setAttribute('label', 'Tab entsperren');
      unlockItem.setAttribute('oncommand', 'TabContextMenu.contextTab.locked = false');
      tabContextMenu.insertBefore(unlockItem, refItem);
    
    
      tabContextMenu.addEventListener('popupshowing', function(event) {
        if (event.target == this) {
          let locked = TabContextMenu.contextTab.locked;
          lockItem.hidden = locked;
          unlockItem.hidden = !locked;
        };
      });
    
    
      eval('gBrowser.unpinTab = ' +
        gBrowser.unpinTab.toString().replace(/}$/, 'aTab.locked = false; }')
      );
    
    
      eval('gBrowser.removeTab = ' +
        gBrowser.removeTab.toString().replace('(aTab, aParams) {', '$& if (aTab.locked) return;')
      );
    
    
    })();
    Alles anzeigen
  • Tab sperren

    • aborix
    • 23. Januar 2018 um 21:42

    Hier ist ein kleines Skript, das nur das Schließen eines Tabs verhindert. Eine andere Seite kann in dem Tab geladen werden. Sperren und Entsperren erfolgt über das Tab-Kontextmenü. Eine Markierung eines gesperrten Tabs ist (noch) nicht eingebaut.

    Code
    (function() {
      if (location != 'chrome://browser/content/browser.xul')
        return;
    
      let tabContextMenu = document.getElementById('tabContextMenu');   
    
      let lockItem = document.createElement('menuitem');
      lockItem.id = 'context_lockTab';
      lockItem.setAttribute('label', 'Tab sperren');
      lockItem.setAttribute('oncommand', 'TabContextMenu.contextTab.locked = true');   
      let refItem = document.getElementById('context_pinTab');
      tabContextMenu.insertBefore(lockItem, refItem);
    
      let unlockItem = document.createElement('menuitem');
      unlockItem.id = 'context_unlockTab';
      unlockItem.setAttribute('label', 'Tab entsperren');
      unlockItem.setAttribute('oncommand', 'TabContextMenu.contextTab.locked = false');
      tabContextMenu.insertBefore(unlockItem, refItem);
    
      tabContextMenu.addEventListener('popupshowing', function(event) {
        if (event.target == this) {
          let locked = TabContextMenu.contextTab.locked;
          lockItem.hidden = locked;
          unlockItem.hidden = !locked;
        };
      });  
    
      eval('gBrowser.removeTab = ' + 
        gBrowser.removeTab.toString().replace('(aTab, aParams) {', '$& if (aTab.locked) return;')
      );
    
    
    })();
    Alles anzeigen

Unterstütze uns!

Jährlich (2025)

101,9 %

101,9% (662,48 von 650 EUR)

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