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. Endor

Beiträge von Endor

  • RestartFirefox_plus.uc.js keine Funktion

    • Endor
    • 9. Oktober 2021 um 15:54
    Zitat von 2002Andreas

    Evtl. könnte Endor das in seine Sammlung mit aufnehmen.

    Aber gerne doch.

    Ihr mein doch das Script aus 63

    Beitrag

    RE: RestartFirefox_plus.uc.js keine Funktion

    […]

    Der Teil dieses Skripts fürs Hamburger-Menü mit dieser Funktion sieht bei mir so aus:

    (Quelltext, 21 Zeilen)

    Falls es bei dir wie gewünscht funktioniert, gebührt der Dank diesem Forum. <3 Ich weiß nicht mehr, woher ich diesen Code habe, wahrscheinlich aus all den Tipps hier zusammengebastelt. :)
    bege
    8. Oktober 2021 um 22:10

    Wird sobald wie möglich hochgeladen.

    Mfg.
    Endor

  • RestartFirefox_plus.uc.js keine Funktion

    • Endor
    • 8. Oktober 2021 um 14:05

    Hallo zusammen.

    2002Andreas.

    Danke, habe ich jetzt genau so gemacht.

    Funktioniert bestens.

    JavaScript
        //      RestartFirefox_plus.uc.js   2
    
        (function() {
    
           if (location != 'chrome://browser/content/browser.xhtml') return;
           
           try {
              CustomizableUI.createWidget({
                 id: 'restart-button',
                 type: 'custom',
                 defaultArea: CustomizableUI.AREA_NAVBAR,
                 onBuild: function(aDocument) {         
                    var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                    var props = {
                       id: 'restart-button',
                       class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                       removable: false,
                       label: 'Neustart',
                       tooltiptext: 'Neustart (mit Rechts- und Mittelklick wird userChrome.js-Cache geleert)',
                       style: 'list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAAAEZ0FNQQAAsY58%2B1GTAAAAIGNIUk0AAHolAACAgwAA%2Bf8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAN8SURBVHjaVJFNTBxlAIafb2Z29gd2l4VdYCkokAUt1AJplQRTrVqjUWMPPWHSCzb21IOn9qIHY2xMahoTTb00NmkUm5qAjdpUI61VaCxCpCVYixt%2ByvKzCwu7LDs7zMw3HmhM%2Bt6fJ0%2FyCp69wiOzZBCPcqSmIXg0HPHuC4R8nkLWyOXyYiIzfuVHzMIA%2BZsLtH18EApntUdhpzUSD5577nDLi%2FGWKjx%2BHVfR8HpFwNwsxTMzza%2BOXJ1%2B58Ev2sVEV%2ByEawXqxf8FllNWEQ9ePXzsqQOecIDU8jampSAVD76Al2BIIx4Dv2Nz7%2FYq%2B5%2BP8sNXE6WdAhdQlOM9rzUdaGiN8M9UjnKvQjzuA0UjV3AxDIcHywqRoEbXoVrKgyBtKXYEUvprmiN9oaoyvr9wl62NHJbtJeDzOo17YmprVzWOppLO2RRNwf1FSOzSUAXsCIR4QdP13UPfjhUde2mjuBXUjcXNEabOnJmq7Y4Nd7z1fu%2BJ%2FR2Jpgrm0jauAI8GlnSlBi4I0bO6sLBWHc9esxRdmjOZf5n%2B5CLWzCzOvsbKupBZ1xgmElUoC%2BgoKtRGQfNomoaND8P8XS%2Bby1olO7O6GHTl1DejGDOrNB%2BvpO7I%2Ba31%2FDP9Z28YUmqoqhCKcG2EYD6ZMUTojZ8WHmsqD%2BI6wnWFajugCkuuZaV%2FZS47wp99R7E3LbxPV6rtr7dV1pmyuBWs3hr7dZ380LC2tzseffvUHm86C1JC2A%2FrGcn509cn%2BPvTk9ibc1R06qL91Ms1CadF000ll9rVS2VykLzVr0lHOgtpuJ9yUFyXxqhKZjbH2nJRI9IZwyw2kXjvXV%2FIOWgaBcc2a%2BtjdVXR1J3iBDx8QUpQUJAuJJclseogxz441H5vrPO72cm0VSyVPJq27ZaHm8ST3Y0M9d9Kkr19A1A1x4VIObTGBfNrsJ5XmE9b6KqgvrOGhr1Vns2sgeNIkXiigvHf1liZuHWZYjINSEXRVLewZjN6bYmYbvN4rcDvVzFKLnOpErMLBpvbklClznyyyPDA6DjTX3wJWICr%2Bnb3ffjXSGpl5Nxnn88uh2ORUCBaHfVQU%2BsjVuGhKqJT5lFYShr8fGH4j42bH53EnJ4EtgEEPQOTzHx9mqXLl9AT9TS82RvreOmVcMTXVh4JhIr5kp3LFu6u3Lk%2ByMylQazU3ENYAvw3AFUTimFqj5i7AAAAAElFTkSuQmCC)',
                       onclick: 'if (event.button == 0) { \
                                      Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); \
                                  }; \
                                  if (event.button == 1 || event.button == 2) { \
                                      Services.appinfo.invalidateCachesOnRestart(); \
                                      Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); \
                                  };'
                    };            
                    for (var p in props)
                       toolbaritem.setAttribute(p, props[p]);            
                    return toolbaritem;
                 }      
              });
              CustomizableUI.registerToolbarNode(tb);
           } catch(e) { };   
                 
           var menuitem = document.createXULElement('menuitem');   
           var props = {
              id: 'restartfirefox-fileMenu2',
              label: 'Neustart',
              tooltiptext: 'Neustart (mit Rechts- und Mittelklick wird userChrome.js-Cache geleert)',
              onclick: 'if (event.button == 0) { \
                                      Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); \
                                  }; \
                                  if (event.button == 1 || event.button == 2) { \
                                      Services.appinfo.invalidateCachesOnRestart(); \
                                      Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); \
                                  };'
           };            
           for (var p in props)
              menuitem.setAttribute(p, props[p]);      
           document.getElementById('menu_FilePopup').insertBefore(menuitem, document.getElementById('menu_FileQuitItem'));
    
           (function() {    
    
           var menuitem = document.createXULElement('toolbarbutton');
               menuitem.id = 'uc_menu_Restart_H';
               menuitem.classList.add('subviewbutton', 'subviewbutton-iconic');
               menuitem.setAttribute('label' , 'Neustart');
               menuitem.setAttribute('tooltiptext' , 'Neustart');
               menuitem.style.listStyleImage= 'url(\'data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill="context-fill" fill-opacity="context-fill-opacity" d="M15,1a1,1,0,0,0-1,1V4.418A6.995,6.995,0,1,0,8,15a6.954,6.954,0,0,0,4.95-2.05,1,1,0,0,0-1.414-1.414A5.019,5.019,0,1,1,12.549,6H10a1,1,0,0,0,0,2h5a1,1,0,0,0,1-1V2A1,1,0,0,0,15,1Z"/></svg>\')';
               menuitem.setAttribute('oncommand' , "Services.appinfo.invalidateCachesOnRestart() || Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit);");
               
           var refItem = document.getElementById('appMenu-viewCache').content.getElementById('appMenu-quit-button2');
               refItem.parentNode.insertBefore(menuitem, refItem);
    
           })();
    
        })();
    Alles anzeigen

    Werde diese Version dann auch bei mir auf Github hoch laden.

    Vielen Dank nochmals für Deine Hilfe.

    Mfg.
    Endor

  • RestartFirefox_plus.uc.js keine Funktion

    • Endor
    • 8. Oktober 2021 um 08:57

    Frage: Im Script restartfirefox_plus.uc.js

    bezieht sich dieser Teil doch auch auf das Hamburger Panel.

    JavaScript
    var pane1 = document.getElementById('appmenuPrimaryPane');
    if (pane1) {
    menuitem = document.createXULElement('menuitem');
    var props = {
    id: 'restartfirefox-fileMenu',
    class: 'menuitem-iconic',
    label: 'Neustart',
    tooltiptext: 'Neustart (mit Rechts- und Mittelklick wird userChrome.js-Cache geleert)',
    onclick: 'if (event.button == 0) { \
    Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); \
    }; \
    if (event.button == 1 || event.button == 2) { \
    Services.appinfo.invalidateCachesOnRestart(); \
    Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); \
    };'
    };
    for (var p in props)
    menuitem.setAttribute(p, props[p]);
    pane1.insertBefore(menuitem, document.getElementById('appmenu-quit'));
    };
    Alles anzeigen

    Da wird aber nichts mehr angezeigt.

    Ich habe bis jetzt nicht raus gefunden wie man das ändern müsste damit es wieder

    funktioniert. :/

    Hat jemand von Euch da eine Idee?

    Mfg.
    Endor

  • RestartFirefox_plus.uc.js keine Funktion

    • Endor
    • 7. Oktober 2021 um 20:52
    Zitat von 2002Andreas

    Edit:

    Das Script für das Hamburgermenü funktioniert allerdings wohl auch nicht mehr.

    Da hat sich die Bezeichnung des Menüeintrags an welchen der Eintrag zum Neustarten angehängt wird

    geändert. So funktioniert es hier dann wieder:

    JavaScript
    (function() {    
    
    var menuitem = document.createXULElement('toolbarbutton');
    menuitem.id = 'uc_menu_Restart_H';
    menuitem.classList.add('subviewbutton', 'subviewbutton-iconic');
    menuitem.setAttribute('label' , 'Neustart');
    menuitem.setAttribute('tooltiptext' , 'Neustart');
    menuitem.style.listStyleImage= 'url(\'data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill="context-fill" fill-opacity="context-fill-opacity" d="M15,1a1,1,0,0,0-1,1V4.418A6.995,6.995,0,1,0,8,15a6.954,6.954,0,0,0,4.95-2.05,1,1,0,0,0-1.414-1.414A5.019,5.019,0,1,1,12.549,6H10a1,1,0,0,0,0,2h5a1,1,0,0,0,1-1V2A1,1,0,0,0,15,1Z"/></svg>\')';
    menuitem.setAttribute('oncommand' , "Services.appinfo.invalidateCachesOnRestart() || Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit);");
    var refItem = document.getElementById('appMenu-viewCache').content.getElementById('appMenu-quit-button2');
    refItem.parentNode.insertBefore(menuitem, refItem);
    
    })();
    Alles anzeigen

    praktisch diese Zeile:

    var refItem = document.getElementById('appMenu-viewCache').content.getElementById('appMenu-quit-button');

    wurde so geändert:

    var refItem = document.getElementById('appMenu-viewCache').content.getElementById('appMenu-quit-button2');

    Mfg.
    Endor

  • Weltuntergang: Facebook offline

    • Endor
    • 5. Oktober 2021 um 09:15

    Nein. Das war mein Meister, loshombre

    er hat euch nur die Macht der dunklen Seite zeigen wollen.

    Unterschätzt niemals die Macht meines Meisters.

    ;)

    Mfg.
    Endor

  • *SUCHE* Addon für den Verlauf

    • Endor
    • 28. September 2021 um 17:33

    Da gibt es viele, keine Ahnung welches passen würde:

    Suchergebnisse für „History“ – Add-ons für Firefox (de)

    Zwei die vielleicht passen könnten:

    Better History – Holen Sie sich diese Erweiterung für 🦊 Firefox (de)
    Laden Sie Better History für Firefox herunter. Une interface d'historique inspirée par le navigateur Vivaldi.
    addons.mozilla.org
    History Master – Holen Sie sich diese Erweiterung für 🦊 Firefox (de)
    Laden Sie History Master für Firefox herunter. Visualize browsing history, Discover your unknown habits, downloads supported. Chrome and Firefox are supported.…
    addons.mozilla.org

    Da ich selber so eine Erweiterung nicht verwende oder brauche, kann ich leider nicht

    mehr dazu sagen.

    Mfg.
    Endor

  • Der Glückwunsch-Thread

    • Endor
    • 26. September 2021 um 11:58

    Auch wenn er schon länger nicht mehr hier war, wer weiß ob er nicht mit liest.

    Daher auch von mir, herzliche Glückwünsche zum Geburtstag MaximaleEleganz.

    Vor allem viel Gesundheit wünsche ich Dir.

    Mfg.
    Endor

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • Endor
    • 22. September 2021 um 19:21
    Zitat von Dharkness

    Dankeschön auch für Deine Bestätigung.

    Ich danke Dir für die Info. Hatte mich schon gewundert warum Clippings

    nicht mehr funktionierte. Auf die Idee dass es an diesem Script liegen könnte

    bin ich leider nicht gekommen. Daher nochmals vielen Dank für die Info.

    Mfg.
    Endor

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • Endor
    • 22. September 2021 um 19:15

    Hallo zusammen.

    Kann und muss leider auch bestätigen, mit dem Script screenshotPageActionButton.uc.js

    funktioniert Clippings nicht mehr. Habe das Script auch entfernt. Schade.

    Mfg.
    Endor

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • Endor
    • 19. September 2021 um 15:02

    Hier hätte ich ein Script, dass eine Schaltfläche in die Adressleiste für Screenshots, Rechts,

    einfügt. Es startet praktisch die Firefox interne diesbezügliche Funktion.

    screenshotPageActionButton.uc.js

    JavaScript
    // ==UserScript==
    // @name           Screenshot Page Action Button
    // @version        1.2
    // @author         aminomancer
    // @homepage       https://github.com/aminomancer/uc.css.js
    // @description    Creates a screenshot button in the page actions area (the right side of the urlbar) that works just like the screenshot toolbar button.
    // ==/UserScript==
    
    (function () {
        const config = {
            "Disable in private browsing": false, // if set to true, the screenshot action will not appear in private windows. this seems like a logical choice, but that's not how the built-in screenshot button or context menu item work, so this option is false by default.
        };
    
        // get BrowserPageActions object from the top context for a given action/node (usually the window)
        function browserPageActions(obj) {
            if (obj.BrowserPageActions) {
                return obj.BrowserPageActions;
            }
            return obj.ownerGlobal.BrowserPageActions;
        }
    
        // handle all the actual behavior in the window context
        BrowserPageActions.screenshot = {
            id: "screenshot", // yields a node ID of #pageAction-urlbar-screenshot
            pref: "extensions.screenshots.disabled",
            css: `#pageAction-urlbar-screenshot{list-style-image:var(--screenshot-icon,url("chrome://browser/skin/screenshot.svg"));}#pageAction-urlbar-screenshot[shooting]{background-color:hsla(0,0%,70%,.1);}`, // use the icon defined in uc-globals.css, there are 2 options there — the camera icon from the devtools or the default screenshot icon that looks like scissors cutting a picture. I prefer the camera so that's the default if you have my theme installed. without the theme, it just uses the default built-in icon. set up the disabled icon appearance.
            get action() {
                return PageActions.actionForID(this.id);
            },
            get node() {
                return BrowserPageActions.urlbarButtonNodeForActionID(this.id);
            },
            async getString() {
                if (this.titleString) return this.titleString;
                this.strings = await new Localization(["browser/screenshots.ftl"], true);
                const formatted = await this.strings.formatMessages(["screenshot-toolbarbutton"]);
                this.titleString = formatted[0].attributes[1].value;
                return this.titleString;
            },
            async addAction() {
                let title = await this.getString();
                const key = window["ext-keyset-id-screenshots_mozilla_org"]?.firstChild;
                const shortcut = !!key ? ` (${ShortcutUtils.prettifyShortcut(key)})` : "";
                let tooltip = title + shortcut;
                PageActions.addAction(
                    new PageActions.Action({
                        id: "screenshot",
                        title,
                        tooltip,
                        pinnedToUrlbar: true,
                        disablePrivateBrowsing: config[`Disable in private browsing`],
                        onCommand(event, buttonNode) {
                            browserPageActions(buttonNode).screenshot.onCommand(event, buttonNode);
                        },
                        onBeforePlacedInWindow(win) {
                            browserPageActions(win).screenshot.onBeforePlacedInWindow(win);
                        },
                        onLocationChange(win) {
                            browserPageActions(win).screenshot.onLocationChange(win);
                        },
                    })
                );
            },
            // set the icon with CSS so it can be styled more easily by userChrome.css
            setStyle() {
                let sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(
                    Ci.nsIStyleSheetService
                );
                let uri = makeURI("data:text/css;charset=UTF=8," + encodeURIComponent(this.css));
                if (sss.sheetRegistered(uri, sss.AUTHOR_SHEET)) return;
                sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
            },
            /**
             * Screenshot extension observer
             * @param {*} sub (notification subject)
             * @param {string} top (notification topic)
             * @param {string} data (notification data)
             *                 is "true" if we're currently taking a screenshot, "false" if not.
             */
            observe(sub, top, data) {
                if (sub && sub !== window) return;
                this.setButtonState(data === "true"); // disable the button while we're already taking a screenshot, just like the toolbar button.
            },
            /**
             * Set the "shooting" property on the button node.
             * @param {boolean} disabled (true if button should be disabled)
             */
            setButtonState(disabled) {
                if (!this.node) return;
                // while taking a screenshot,
                disabled
                    ? this.node.setAttribute("shooting", true)
                    : this.node.removeAttribute("shooting");
            },
            /**
             * For a given URI, determine if the button should be hidden. The screenshot feature is actually a webextension, and it doesn't work on privileged content, extension documents, or other internal files. Clicking the button under those conditions would just result in an error notification, so we hide the button instead.
             * @param {ChromeDocument} win (the window in which a location change occurred)
             * @returns {boolean} (true if button should be hidden)
             */
            shouldHide(win) {
                let uri = win.gBrowser.currentURI;
                return (
                    Services.prefs.getBoolPref("extensions.screenshots.disabled", false) ||
                    /^(?:about:(?!reader)|resource:(?!\/\/pdf\.js)|chrome:|data:|moz-extension:)/i.test(
                        uri.spec
                    )
                );
            },
            /**
             * Command handler — what to do when the button is clicked.
             * @param {object} _e (the event that invoked us; not needed)
             * @param {object} buttonNode (DOM node of the button that was activated)
             */
            onCommand(_e, buttonNode) {
                if (buttonNode === this.node)
                    buttonNode.ownerGlobal.Services.obs.notifyObservers(
                        null,
                        "menuitem-screenshot-extension"
                    );
            },
            /**
             * Set up the screenshot extension listener and localization strings when a window is launched.
             * @param {ChromeDocument} win (the window in which the button was placed)
             */
            async onBeforePlacedInWindow(win) {
                if (win !== window || this.isSetup) return;
                win.Services.obs.addObserver(this, "toggle-screenshot-disable");
                const titleString = await this.getString();
                const key = window["ext-keyset-id-screenshots_mozilla_org"]?.firstChild;
                const shortcut = !!key ? ` (${ShortcutUtils.prettifyShortcut(key)})` : "";
                this.action.setTooltip(titleString + shortcut, win);
                this.isSetup = true;
                this.stringIsDone = !!shortcut;
            },
            muObserver: new MutationObserver(async function (mus) {
                const keyset = window["ext-keyset-id-screenshots_mozilla_org"];
                if (BrowserPageActions.screenshot.stringIsDone || !keyset) return;
                const titleString = await BrowserPageActions.screenshot.getString();
                const key = keyset.firstChild;
                const shortcut = !!key ? ` (${ShortcutUtils.prettifyShortcut(key)})` : "";
                if (!BrowserPageActions.screenshot.action) return;
                BrowserPageActions.screenshot.action.setTooltip(titleString + shortcut, window);
                BrowserPageActions.screenshot.stringIsDone = !!shortcut;
                if (shortcut) this.disconnect(), delete BrowserPageActions.screenshot.muObserver;
            }),
            /**
             * Listen to location changes (tab switches, web navigation, etc.) to hide/reveal the button
             * @param {ChromeDocument} win
             */
            onLocationChange(win) {
                if (win !== window) return;
                let shouldHide = this.shouldHide(win);
                if (shouldHide != this.action.getDisabled(win))
                    this.action.setDisabled(this.shouldHide(win), win);
            },
        };
    
        if (PageActions.actionForID("screenshot")) return; // the action itself only needs to be registered once per app launch, not once per window. firefox internally handles replicating it across all windows so we want to stop here if this is the 2nd time the script has executed during a given runtime.
        BrowserPageActions.screenshot.setStyle(); // likewise, stylesheets loaded by the stylesheet XPCOM service are automatically dumped in every window, so it isn't necessary to register the stylesheet any more than once per session.
        BrowserPageActions.screenshot.addAction();
        BrowserPageActions.screenshot.muObserver.observe(document.documentElement, { childList: true });
    })();
    Alles anzeigen

    Quelle: https://github.com/aminomancer/uc…ionButton.uc.js

    Viellicht kann das ja jemand brauchen.

    Mfg.

    Endor

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • Endor
    • 15. September 2021 um 21:43

    Das hier ist die Version von Alice aber mit deutscher Übersetzung

    und die funktioniert hier auch im aktuellen Nightly.

    JavaScript
    // ==UserScript==
    // @name           UndoListInTabmenuToo
    // @namespace      http://space.geocities.yahoo.co.jp/gl/alice0775
    // @description    UndoListInTabmenuToo.uc.js
    // @include        main
    // @compatibility  Firefox 87+
    // @author         Alice0775
    // @version        2021/04/25 fix 1689378
    // @version        2019/11/14 remove eval
    // @version        2019/06/30 10:00 Bug 1555060 Convert <tabs> to a custom element
    // @version        2019/06/24 23:00 wait for gBrowser initialized
    // @version        2019/05/21 08:30 fix 69.0a1 Bug 1551320 - Replace all createElement calls in XUL documents with createXULElement
    // @version        2018/05/10 60
    // @version        2017/11/18 nsIPrefBranch to nsIPrefBranch
    // @version        2010/09/18 00:00 4.0b7pre
    // @version        2009/02/03 13:00 ツールチップにタブ内履歴を表示するようにした
    // @Note           タブやコンテキストメニューにもUndoClose Tab Listを追加するもの
    // @OriginalCode   browser.jsからpopulateUndoSubmenuを拝借し, ごにょごにょした
    // @version        2018/05/09 15:00 61
    // ==/UserScript==
    // @version        2010/03/26 13:00  Minefield/3.7a4pre Bug 554991 -  allow tab context menu to be modified by normal XUL overlays
    // @version        2010/03/15 00:00  Minefield/3.7a4pre Bug 347930 -  Tab strip should be a toolbar instead
    // @version        2009/09/09 15:00 中クリック処理
    // @version        2009/09/03 22:00 Firegox3.7a1preで動かなくなっていたのを修正(Bug 489925. getElementById should not return anonymous nodes)
    // @version        2009/08/22 00:00 Firegox3.6 stringbandleの変更による
    // @version        2009/04/24 00:00 #394759 [Firefox:Session Restore]-Add undo close window feature
    // @version        2008/10/12 18:00 Fx3.0.4pre中クリックしたときメニューポップアップが閉じないおよびその他fix
    // @version        2007/10/05 10:00
    
    var UndoListInTabmenu = {
    // -- config --
      TABCONTEXTMENU : true ,  //タブコンテキストメニューに              追加する:[true], しない: false
      CONTEXTMENU    : false ,  //コンテンツアリアコンテキストメニューに  追加する: true , しない:[false]
    // -- config end--
      ss: null,
    
      get tabContext() {
        return document.getElementById("tabContextMenu");
      },
    
      get navigatorBundle() {
        return Services.strings.createBundle(
               "chrome://browser/locale/browser.properties"
               );
      },
    
      init: function(){
    
        if (this.TABCONTEXTMENU){
          //タブコンテキスト
          var tabContext = this.tabContext;
          this.makePopup(tabContext, null, "tabContextUndoList");
        }
        if (this.CONTEXTMENU){
          //コンテンツエリアコンテキスト
          var contextMenu = document.getElementById("contentAreaContextMenu");
          var refItem = document.getElementById("context-sep-stop");
          this.makePopup(contextMenu, refItem, "ContextUndoList");
        }
        // get closed-tabs from nsSessionStore
        this._ss = SessionStore;
    
      },
    
      makePopup: function(popup, refItem, id){
        var menu;
        //label
        const locale = "en";
        
        // "Recently Closed Windows"
        menu = document.createXULElement("menu");
        menu.setAttribute("id", "historyUndoWindowMenu3");
        menu.setAttribute("label", "K\u00FCrzlich geschlossene Fenster");
        menu.setAttribute("accesskey", "W");
        menu.setAttribute("disabled", "true");
        popup.insertBefore(menu, refItem);
    
        this.historyUndoWindowPopup3 = menu = menu.appendChild(document.createXULElement("menupopup"));
        menu.setAttribute("id", "historyUndoWindowPopup3");
        menu.setAttribute("onpopupshowing", "UndoListInTabmenu.populateUndoWindowSubmenu(this);");
    
        //UndoClose Tab List  最近閉じたタブ
        const LABELTEXT = locale.indexOf("ja") == -1?"K\u00FCrzlich geschlossene Tabs":"\u6700\u8fd1\u9589\u3058\u305f\u30bf\u30d6";    //create menu
        menu = document.createXULElement("menu");
        menu.setAttribute("label", LABELTEXT);
        menu.setAttribute("accesskey", "L");
        if (id)
          menu.setAttribute("id", id);
        //menu.setAttribute("disabled", true);
        var menupopup = document.createXULElement("menupopup");
        menupopup.setAttribute("onpopupshowing", "UndoListInTabmenu.populateUndoSubmenu(this);");
        menu.appendChild(menupopup);
        popup.insertBefore(menu, refItem);
    
        //add event listener
        popup.addEventListener('popupshowing',function(event) {
          UndoListInTabmenu.toggleRecentlyClosedWindows();
          // no restorable tabs, so make sure menu is disabled, and return
          if (UndoListInTabmenu._ss.getClosedTabCount(window) == 0) {
            menu.setAttribute("disabled", true);
            //menu.setAttribute("hidden", true);
            return;
          }
          menu.removeAttribute("disabled");
          //menu.setAttribute("hidden", false);
        },false);
      },
    
      /**
       * Populate when the history menu is opened (Fx3.6)
       */
      populateUndoSubmenu: function(undoPopup) {
            while (undoPopup.hasChildNodes()) {
                undoPopup.removeChild(undoPopup.firstChild);
            }
            var utils = RecentlyClosedTabsAndWindowsMenuUtils;
            var tabsFragment = utils.getTabsFragment(
              window,
          "menuitem",
          /* aPrefixRestoreAll = */ true,
          "menu-history-reopen-all-tabs"
        );
            undoPopup.appendChild(tabsFragment);
            undoPopup.firstChild.setAttribute("accesskey", "R");
        undoPopup.insertBefore(document.createXULElement("menuseparator"), undoPopup.childNodes[1]);
    
        // populate tab historis for tooltip
        var undoItems = JSON.parse(UndoListInTabmenu._ss.getClosedTabData(window));
        for (var i = 0; i < undoItems.length; i++) {
          var entries = undoItems[i].state.entries;
          var tooltiptext = "";
          for (var j = entries.length - 1; j > -1; j--){
            if (j != entries.length - 1)
              tooltiptext += "\n";
            tooltiptext += parseInt(j + 1, 10) + ". " + entries[j].title;
          }
          undoPopup.childNodes[i + 2/*restore all, sep*/].setAttribute("tooltiptext", tooltiptext);
        }
    
        // "Append Clear undo close tb list"
        undoPopup.appendChild(document.createXULElement("menuseparator"));
    
        m = undoPopup.appendChild(document.createXULElement("menuitem"));
        m.setAttribute("label", "Liste der letzten Tabs l\u00F6schen");
        m.setAttribute("accesskey", "C");
        m.addEventListener("command", function() {
          let prefs = Services.prefs;
          let max_undo = prefs.getIntPref("browser.sessionstore.max_tabs_undo");
          prefs.setIntPref("browser.sessionstore.max_tabs_undo", 0);
          prefs.setIntPref("browser.sessionstore.max_tabs_undo", max_undo);
        }, false);
      },
    
      toggleRecentlyClosedWindows: function PHM_toggleRecentlyClosedWindows() {
        // enable/disable the Recently Closed Windows sub menu
        let undoPopup = this.historyUndoWindowPopup3;
        // no restorable windows, so disable menu
        if (this._ss.getClosedWindowCount() == 0)
          this.historyUndoWindowPopup3.parentNode.setAttribute("disabled", true);
        else
          this.historyUndoWindowPopup3.parentNode.removeAttribute("disabled");
      },
    
      /**
       * Populate when the history menu is opened
       */
      populateUndoWindowSubmenu: function PHM_populateUndoWindowSubmenu(undoPopup) {
            while (undoPopup.hasChildNodes()) {
                undoPopup.removeChild(undoPopup.firstChild);
            }
            let utils = RecentlyClosedTabsAndWindowsMenuUtils;
            let windowsFragment = utils.getWindowsFragment(
          window,
          "menuitem",
          /* aPrefixRestoreAll = */ true,
          "menu-history-reopen-all-windows"
        );
        undoPopup.appendChild(windowsFragment);
        undoPopup.firstChild.setAttribute("accesskey", "R");
        undoPopup.insertBefore(document.createXULElement("menuseparator"), undoPopup.childNodes[1]);
    
        // "Append Clear undo close window list"
        undoPopup.appendChild(document.createXULElement("menuseparator"));
    
        m = undoPopup.appendChild(document.createXULElement("menuitem"));
        m.setAttribute("label", "Liste der kürzlich geschlossenen Fenster l\u00F6schen");
        m.setAttribute("accesskey", "C");
        m.addEventListener("command", function() {
          for (let i = SessionStore.getClosedWindowCount() -1; i >= 0; i--)
            SessionStore.forgetClosedWindow(i);
        }, false);
      }
    };
    
    // We should only start the redirection if the browser window has finished
    // starting up. Otherwise, we should wait until the startup is done.
    if (gBrowserInit.delayedStartupFinished) {
      UndoListInTabmenu.init();
    } else {
      let delayedStartupFinished = (subject, topic) => {
        if (topic == "browser-delayed-startup-finished" &&
            subject == window) {
          Services.obs.removeObserver(delayedStartupFinished, topic);
          UndoListInTabmenu.init();
        }
      };
      Services.obs.addObserver(delayedStartupFinished,
                               "browser-delayed-startup-finished");
    }
    Alles anzeigen

    Mfg.
    Endor

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • Endor
    • 15. September 2021 um 21:24

    Boersenfeger.

    Alice ist doch bei Github zu finden.

    Teste diese Version mal:

    userChrome.js/UndoListInTabmenuToo.uc.js at master · alice0775/userChrome.js
    Contribute to alice0775/userChrome.js development by creating an account on GitHub.
    github.com

    oder diese Version aus einer anderen Quelle:

    JavaScript
    // ==UserScript==
    // @name          undoCloseTabMenu.uc.js
    // @include       main
    // @charset       UTF-8
    // ==/UserScript==
    (function(doc) {
    
        var refNode = doc.getElementById('tabContextMenu');
        var menu = doc.createXULElement('menu');
        menu.setAttribute('id', 'context_undoCloseTabMenu');
        menu.setAttribute('label', 'Kürzlich geschlossene Tabs'); //'Recently Closed Tabs'
        menu.setAttribute('class', 'menu-iconic');
        menu.setAttribute('image', 'chrome://global/skin/icons/undo.svg');
        refNode.appendChild(menu);
        
        if (!sep) {
            var sep = doc.createXULElement('menuseparator');
            sep.setAttribute('id', 'undoCloseTabMenu-sep');
            var insPos = doc.getElementById('context_undoCloseTabMenu');
            refNode.insertBefore(sep, insPos);
        }
    
        var popup = doc.createXULElement('menupopup');
        menu.addEventListener('popupshowing', function() {
            while (popup.hasChildNodes()) {
                popup.removeChild(popup.firstChild);
            }
            var utils = RecentlyClosedTabsAndWindowsMenuUtils;
            var tabsFragment = utils.getTabsFragment(window, 'menuitem');
            popup.appendChild(tabsFragment);
        }, false);
        menu.appendChild(popup);
    
    }(document));
    Alles anzeigen

    Mfg.
    Endor

  • Bildschrimegrößen testen UserSkript

    • Endor
    • 10. September 2021 um 19:37

    sam2008

    Gern geschehen. Freut mich wenn es passt.

    Mfg.
    Endor

  • Tabs mehrzeilig

    • Endor
    • 10. September 2021 um 19:36

    Foxfailure

    Prima freut mich wenn ich helfen konnte.
    Wie immer gern geschehen.

    Mfg.
    Endor

  • Bildschrimegrößen testen UserSkript

    • Endor
    • 10. September 2021 um 14:05

    sam2008

    oder direkt auf deine Frage:

    menuitem.setAttribute('oncommand', 'document.getElementById("menu_responsiveUI").click();');

    funktioniert hier.

    Mfg.
    Endor

  • Der Glückwunsch-Thread

    • Endor
    • 10. September 2021 um 12:09

    Nachträglich auch von mir herzlichen Glückwunsch zum Geburtstag, @Hemu !

    bigpen

    Schön mal wieder etwas von Dir zu hören. Freut mich wenn es Dir gut geht.
    Pass auf Dich auf und bleib Gesund.

    Mfg.
    Endor

  • Bildschrimegrößen testen UserSkript

    • Endor
    • 10. September 2021 um 12:01

    Hallo sam2008

    Ich hätte da ein Script, das fügt im Rechtsklick Kontextmenü

    ein neues Untermenü ein, in welchem unter anderem auch
    eine Schaltfläche für Bildschirmgrößen testen dabei ist:

    JavaScript
    //   WebDeveloper-Menu.uc.js
    
    (function() {
       if (location != 'chrome://browser/content/browser.xhtml')
          return;
       setTimeout(function() {
          if (document.getElementById('menuWebDeveloperPopup').childElementCount <= 5) {
             // s. DevToolsStartup.prototype.initDevTools
             // https://dxr.mozilla.org/mozilla-central/source/devtools/shim/devtools-startup.js
             let { require } = Cu.import("resource://devtools/shared/Loader.jsm", {});
             require("devtools/client/framework/devtools-browser");
          };
          var dblMenu = document.getElementById('webDeveloperMenu').cloneNode(true);
          document.getElementById('contentAreaContextMenu').insertBefore(dblMenu, document.getElementById('context-viewsource'));
          dblMenu.id = 'context-' + dblMenu.id;
          var elements = dblMenu.getElementsByTagName('*');
          for (let elem of elements) {
             let origId = elem.id;
             if (origId) {
                elem.id = 'context-' + origId;
                if (elem.tagName == 'menuitem') {
                   elem.setAttribute('oncommand', 'document.getElementById("' + origId + '").click();');
                   let obs = document.createXULElement('observes');
                   obs.setAttribute('element', origId);
                   obs.setAttribute('attribute', 'checked');
                   elem.appendChild(obs);
                };
             };
          };
       }, 100);
    }());
    Alles anzeigen

    Das Script dupliziert praktisch das Menü Browser-Werkzeuge was in der Menüleiste unter Extras

    zu finden ist ins Rechtsklick Kontextmenü.

    Mfg.
    Endor

  • In memoriam

    • Endor
    • 4. September 2021 um 07:28

    Mikis Theodorakis ist tot.

    Mikis Theodorakis ist tot: Griechenland in Trauer vereint
    Griechenland trauert um Mikis Theodorakis, den legendären Komponisten. Noch beeindruckender aber war, dass er Menschen zusammenbrachte – über politische…
    www.spiegel.de

    Wer mit den Namen eventuell nichts anfangen kann , das ist Musik

    die er komponiert hat:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Mfg.
    Endor

  • 2x UserSkript funktionieren teilweise

    • Endor
    • 3. September 2021 um 08:11

    sam2008

    Prima. Freut mich.

    Wie immer gern geschehen.

    Mfg.
    Endor

  • 2x UserSkript funktionieren teilweise

    • Endor
    • 3. September 2021 um 07:31

    Entschuldige bitte, Du hast Recht gehabt.

    Hier ein neuer Versuch:

    printpreview.uc.js

    JavaScript
    (function() {
    
       if (location != 'chrome://browser/content/browser.xhtml')
          return;
    
       try {
          CustomizableUI.createWidget({
             id: 'print-toolbarbutton',
             type: 'custom',
             defaultArea: CustomizableUI.AREA_NAVBAR,
             onBuild: function(aDocument) {
                var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                var attrs = {
                   id: 'print-toolbarbutton',
                   class: 'chromeclass-toolbar-additional',
                   type: 'menu',
                   removable: true,
                   label: 'Drucken',
                   tooltiptext: 'Drucken'
                };
                for (var a in attrs)
                   toolbaritem.setAttribute(a, attrs[a]);
                return toolbaritem;
             }
          });
       } catch(e) { };
    
       document.getElementById('home-button').parentNode.insertBefore(document.getElementById('print-toolbarbutton'), document.getElementById('home-button'));
    
       var css = '\
          #print-toolbarbutton {list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAYCAYAAADkgu3FAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAEEElEQVR42mL8//8/Az0AQACxkKJYSNmE30ZbMVRKRPgHsviBYxfv37hx/Cg+vQABxEiMjxRVLSyiIv3UXjx/aeLlYJTNyMjAhCx/9MyNHdz8Aktv3Lj979rlE2uuXLnyC90MgABiAFmED4tKaxvcunnr4r+/v/8Twr9//fxf19hdi80cgABiIuSb+OgITxUVRT18av7/+8fw4+t7hu+fXjDYWRvHYFMDEEAE40hUiFv5968fWOWAvmD4+e0jw++fXxkYmZgZmJlZGb59/SqGTS1AABG06Mv7l+xfPr2Fuvwvwz8g/v/vD8Pf3z+BQfIXaAELAxPQEmC8AcX/M3z68IYZmzkAAYTTIgkZfSemf/8/utjpC12+coNh9bpdDJKSIgxsLIwMoPQDNBNK/2eApacvX74x8HKxM0tJ6Rn/Y2SUfvH04iaYeQABhDUBGBo66p89d+HCf6ATYXjC7NX/zz/4gBd39c+Eq3/77t2X5LTieJiZAAGE1UeOzrbBuloq+r9/foOLPX7zmeHCvZd4g/n79x8MMD28XGzcVub6EUDmQhAfIICwWiQrJazwBxjByODhy/cMfwlYxP3rJwOyPk52ZmUYGyCAMCxKD3Pl1zJ3l/6D5BsQ0FVXYDDXEWPg4+ZgEOTjxLDk6Yu3DL/E1RmQ9TH//8PfVxwpW9S7/DFAAGFYJC7Eq/X3+0dFdB/l+qgDyT+gKIdiNH1SQEJKGcVHv39/F2RkYrAFMpcBBBBGhhXkYVUD5htRQiUGMRhoOCuQ1g8LC+MECCAUHzk6OrL4GYvJMjMycoD4127cZpizYBnJJbWHmyODm5MdjCuvJ84gARBAKBZpSnHzArOEBNA9YPFnz18wLF+9EZINGP5DswM8X2AXB4WKoADYImYWFlB+k+RmZZADCCAUi768+f2LUYrxyL2Hz92XLF4h8uDRE1YleWluGQkxhoT4BLih2As8Boa7t28xLFm9luHR/Qc/gfq/3334kkGM7e9WZtb/jwECCMWiRTt3fgWG5zoVWRF+FWWFGdKSwgy37txmsDMzYgiNiSUYZJdOHGY4fvokg562KruzvRn7hy1HNr69+3Fy36rV3wECCCPVrVq1CliXrJ6zbtmXiV9//mdXkpNmUFNSYPjz5xdBi1S0dRj0VBQY2Ng5GF5++MXAzs2zv2/Vqu8gOYAAwlHWhf4NimLg6G8sElJRlFSUlJLa8ff3LxFCFjGzsDIYaanOePLufZeTd8h9J2+EHEAA4S29C+v73gGpd8c2L2L+85uwj/79BZbuP7/+KWmefB9dDiCAiGozXDu2+cHVo1sEGQmo+8/A+JOB6e8lbHIAAUSURYw/GV2Y2f8J/GMGVkB4a9r/7ALsLA+wyQEEECO9mlsAAQYAq1BA/vIVsYsAAAAASUVORK5CYII=)}\
          #print-toolbarbutton > dropmarker {display: none}\
          #print-toolbarbutton > image{min-height: 24px}\
          #print-toolbarbutton > image{min-width: 26px}\
       ';
    
       var stylesheet = document.createProcessingInstruction('xml-stylesheet', 'type="text/css" href="data:text/css;utf-8,' + encodeURIComponent(css) + '"');
    
       document.insertBefore(stylesheet, document.documentElement);
    
       var menu, menuitem, menuseparator, menupopup;
    
       // menupopup of toolbarbutton
    
       menupopup = document.createXULElement('menupopup');
       menupopup.id = "print-button-popup";
       document.getElementById('print-toolbarbutton').appendChild(menupopup);
    
       menuitem = document.createXULElement('menuitem');
       menuitem.setAttribute('label', "Drucken…");
       menuitem.setAttribute('tooltiptext', "Drucken…");
       menuitem.setAttribute('accesskey', "D");
       menuitem.setAttribute('command', "cmd_print");
       menupopup.appendChild(menuitem);
    
       menuitem = document.createXULElement('menuitem');
       menuitem.setAttribute('label', "Druckvorschau");
       menuitem.setAttribute('tooltiptext', "Druckvorschau");
       menuitem.setAttribute('accesskey', "v");
       menuitem.setAttribute('command', "cmd_printPreview");
       menupopup.appendChild(menuitem);
    
       menuseparator = document.createXULElement('menuseparator');
       menupopup.appendChild(menuseparator);
    
       menuitem = document.createXULElement('menuitem');
       menuitem.setAttribute('label', "Seite einrichten…");
       menuitem.setAttribute('tooltiptext', "Seite einrichten…");
       menuitem.setAttribute('accesskey', "e");
       menuitem.setAttribute('command', "cmd_pageSetup");
       menupopup.appendChild(menuitem);
    
       // submenu of context menu
    
       menu = document.createXULElement('menu');
       menu.id = "context-print-menu";
       menu.setAttribute('label', "Drucken…");
       menu.setAttribute('accesskey', "D");
       document.getElementById('contentAreaContextMenu')
         .insertBefore(menu, document.getElementById('context-sep-open').nextSibling);
    
       menupopup = document.createXULElement('menupopup');
       menu.appendChild(menupopup);
    
       menuitem = document.createXULElement('menuitem');
       menuitem.id = "context-print-menu-print";
       menuitem.setAttribute('label', "Drucken…");
       menuitem.setAttribute('accesskey', "D");
       menuitem.setAttribute('command', "cmd_print");
       menupopup.appendChild(menuitem);
    
       menuitem = document.createXULElement('menuitem');
       menuitem.id = "context-print-menu-preview";
       menuitem.setAttribute('label', "Druckvorschau");
       menuitem.setAttribute('accesskey', "v");
       menuitem.setAttribute('command', "cmd_printPreview");
       menupopup.appendChild(menuitem);
    
       menuseparator = document.createXULElement('menuseparator');
       menupopup.appendChild(menuseparator);
    
       menuitem = document.createXULElement('menuitem');
       menuitem.id = "context-print-menu-printSetup";
       menuitem.setAttribute('label', "Seite einrichten…");
       menuitem.setAttribute('accesskey', "e");
       menuitem.setAttribute('command', "cmd_pageSetup");
       menupopup.appendChild(menuitem);
    
    })();
    Alles anzeigen

    Mfg.
    Endor

Unterstütze uns!

Jährlich (2026)

35,3 %

35,3% (273,24 von 775 EUR)

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