1. Startseite
  2. Nachrichten
  3. Herunterladen
    1. Thunderbird Release-Version
    2. Thunderbird 128 ESR
    3. Thunderbird 115 ESR
    4. Thunderbird Beta-Version
    5. Sprachpaket (Benutzeroberfläche)
    6. Wörterbücher (Rechtschreibprüfung)
  4. Hilfe & Lexikon
    1. Anleitungen zu Thunderbird
    2. Fragen & Antworten (FAQ) zu Thunderbird
    3. Hilfe zu dieser Webseite
  5. Forum
    1. Unerledigte Themen
    2. Letzte Beiträge
    3. Themen der letzten 24 Stunden
  • Deutsch
  • Anmelden
  • Registrieren
  • 
  • Suche
Forum
  1. Thunderbird Mail DE
  2. Endor

Beiträge von Endor

  • 1
  • 2
  • 3
  • 4
  • Diskussionsthread für Benutzerskripts

    • Endor
    • 15. Juli 2023 um 20:07

    Muss mich entschuldigen. =O

    Hatte im falschen Ordner geschaut.

    Bei 115 habe ich diese Version und auch bei Beta und Nightly.


    Code
    //RestartThunderbird.uc.js
    
    "use strict";
    (function() {
    
        if (location != 'chrome://messenger/content/messenger.xhtml') return;
    
        // toolbox
        var toolbarbutton = document.createXULElement('toolbarbutton');
        var props = {
            id: 'restartthunderbird-toolbar',
            label: '',
            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)',
            class: 'toolbarbutton-1',
            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) toolbarbutton.setAttribute(p, props[p]);
    
        var position = document.getElementById('unifiedToolbarContent');    
        position.parentNode.insertBefore(toolbarbutton, position.nextSibling);
        
        // popup
        var menuitem = document.createXULElement('menuitem');
        var props = {
            id: 'restartthunderbird-popup',
            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)',
            class: 'menuitem-iconic',
            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]);
    
        var popup = document.getElementById('menu_FilePopup')
        popup.insertBefore(menuitem, document.getElementById('menu_FileQuitItem'));
    
    
    
    })();
    Alles anzeigen

    und da steht in Zeile 26:

    Code
        var position = document.getElementById('unifiedToolbarContent');    
        position.parentNode.insertBefore(toolbarbutton, position.nextSibling);

    Ja ja, wenn man nicht alles dreimal kontrolliert.....

  • Diskussionsthread für Benutzerskripts

    • Endor
    • 15. Juli 2023 um 19:55

    Aha und welche Leiste wäre das dann?

  • Diskussionsthread für Benutzerskripts

    • Endor
    • 15. Juli 2023 um 19:54

    @milupo

    falls Du die meinst ja:

    Code
        for (var p in props) toolbarbutton.setAttribute(p, props[p]);
    
        var toolbox = document.getElementById("mail-toolbox");
        toolbox.palette.appendChild(toolbarbutton);    
    
        var toolbar = document.getElementById("tabbar-toolbar");
        toolbar.insertItem("restartthunderbird-toolbar", toolbar.lastChild);

    Funktioniert hier auch in Daily 117

  • Diskussionsthread für Benutzerskripts

    • Endor
    • 15. Juli 2023 um 19:47

    Ja.

  • Diskussionsthread für Benutzerskripts

    • Endor
    • 15. Juli 2023 um 19:26

    Und das hier, Neustarten für Hamburger Menü?
    Neustart-Hamburger.uc.js

    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="grey" 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-quit');
    refItem.parentNode.insertBefore(menuitem, refItem);
    
    })();
    Alles anzeigen

    Mfg.
    Endor

  • Diskussionsthread für Benutzerskripts

    • Endor
    • 15. Juli 2023 um 19:21

    Hier geht er bestens.

    Schaltfläche oder Menüeintrag in Datei gehen hier.

  • Diskussionsthread für Benutzerskripts

    • Endor
    • 15. Juli 2023 um 19:17
    Zitat von Schrotty

    Gibt es ein Restart Script

    Schau mal hier bei mir:

    userChrome.js/Thunderbird/Thunderbird - Beta + Daily at master · Endor8/userChrome.js
    Skripte für die Firefox-Erweiterung userChromeJS. Contribute to Endor8/userChrome.js development by creating an account on GitHub.
    github.com

    Sollte funktionieren.

    Mfg.
    Endor

  • Diskussionsthread für Benutzerskripts

    • Endor
    • 24. Juni 2023 um 13:42

    Hallo @milupo!

    Danke für den Hinweis: ;)
    Ist jetzt geändert.

    Schönes Wochenende.

    Mfg.
    Endor

  • Diskussionsthread für Benutzerskripts

    • Endor
    • 23. Juni 2023 um 16:50

    Boersenfeger.
    Freut mich, dass autopopup.uc.js auch bei Dir funktioniert.

    Zitat von Boersenfeger

    Addon-UpDate-Script bewirkt hier nix..

    Ja leider. Es fehlt die Verbindung zwischen Schaltfläche und
    Funktion zum Überprüfen auf Updates usw. Leider habe ich keinerlei Ahnung wie
    man das beheben könnte.

    Harff182
    Danke. Gern geschehen. ;)

    Es freut mich doch, wenn es jemand brauchen kann.

    Mfg.
    Endor

  • Diskussionsthread für Benutzerskripts

    • Endor
    • 23. Juni 2023 um 15:08

    Boersenfeger.

    Wenn man mit dem Mauszeiger auf Datei, Bearbeiten, Ansicht usw.

    fährt öffnet sich automatisch das dazu gehörende popup Menü.
    Auch bei der Schaltfläche Links oben.

    Sollte bei Dir auch so sein.

    Hier funktioniert es in 102.12, in Beta und Daily.

    Mfg.
    Endor

  • Diskussionsthread für Benutzerskripts

    • Endor
    • 22. Juni 2023 um 14:08

    Hallo zusammen.
    Bitte mal testen:

    Autopopup.uc.js für Thunderbird.
    Habe es in Daily getestet. Funktioniert soweit.
    Nur der Hamburger will nicht.

    JavaScript: autopopup.uc.js
    // ==UserScript==
    // @name           AutoPopup.uc.js
    // @description    Auto popup menulist/menupopup
    // @compatibility  Firefox 72
    // @author         GOLF-AT, modified by gsf & aborix
    // @version        2019.11.22
    // ==UserScript==
    
    (function() {
    
        const showDelay = 200;   // delay of showing popups
        const hideDelay = 500;   // delay of hiding popups
        const alwaysPop = false; // show popups also when window is not focused
    
        var overElt = null;
        var PopElt = null;
        var PopTimer = null;
        var HideTimer = null;
    
        // elements are CSS selector strings
        var blackIDs = [];
    
        // whitelist, and trigger action
        var whiteIDs = [
        {
            id: 'omnibar-defaultEngine',
            popMemu: 'omnibar-engine-menu',
            run: function(overElem) {
                document.getElementById('omnibar-in-urlbar').click(0);
            }
        },
        {
            id: 'ucjs_zoom_statuslabel',
            popMemu: 'ucjs_zoom-context',
            run: null
        },
        {
            id: 'usercssloader-menu',
            popMemu: 'usercssloader-menupopup',
            run: null
        },
        {
            id: 'readLater',
            popMemu: 'readLater-popup',
            run: null
            //function(overElem) {PopElt.popup();}
        },
        {
            id: 'foxyproxy-toolbar-icon',
            popMemu: 'foxyproxy-toolbarbutton-popup',
            run: null
        }
        ];
        var whitesInx = -1;
    
        const popupPos = ['after_start', 'end_before', 'before_start', 'start_before'];
        const searchBar = window.BrowserSearch ? BrowserSearch.searchBar : null;
    
        function IsButton(elt) {
            return elt && (elt.localName == 'toolbarbutton' || elt.localName == 'button');
        }
    
        function IsWidgetBtn(elt) {
            return IsButton(elt) &&
                   ((elt.hasAttribute('widget-id') && elt.getAttribute('widget-type') == 'view')
                    || elt.id == 'fxa-toolbar-menu-button' || elt.id == 'library-button'
                    || elt.id == 'alltabs-button');
        }
    
        function IsSearchBtn(elt) {
            return (elt && elt.className == 'searchbar-search-button') || whitesInx == 0;
        }
    
        function IsAppMenuBtn(elt) {
            return elt && elt.id == 'button-appmenu';
        }
        
        function IsPanelMenuBtn(elt) {
            return elt && elt.id == 'PanelUI-menu-button';
        }
    
        function IsDownloadBtn(elt) {
            return elt && elt.id == 'downloads-button';
        }
    
        function IsMenuBtn(elt) {
            return IsPanelMenuBtn(elt) || IsDownloadBtn(elt) || IsWidgetBtn(elt)
                   || (IsButton(elt) && getPopupMenu(elt));
        }
    
        function IsOverflowBtn(elt) {
            return elt && elt.id == 'nav-bar-overflow-button';
        }
    
        function IsUrlbarDropmarker(elt) {
            return elt && elt.classList && elt.classList.contains('urlbar-history-dropmarker');
        }
    
        function IsCustomizationBtn(elt) {
            return IsButton(elt) && elt.className == 'customizationmode-button';
        }
    
        function IsAutoComplete(elt) {
            try {
                return elt.getAttribute('type').substring(0, 12) == 'autocomplete';
            } catch(e) {
                return false;
            }
        }
    
        function isBlackNode(elt) {
            return blackIDs.some(function(css) {
                try {
                    var nodes = document.querySelectorAll(css);
                } catch(e) {
                    return false;
                }
                for (var node of nodes) {
                    if (node == elt)
                        return true;
                }
                return false;
            })
        }
    
        function getPopupNode(node) {
            if (whitesInx > -1 && PopElt)
                return PopElt;
    
            if (IsSearchBtn(node) || IsOverflowBtn(node) || node.id == 'sidebar-switcher-target')
                return node;
    
            var elt, isPop, s;
    
            for (; node != null; node = node.parentNode) {
                if (node == PopElt)
                    return node;
    
                isPop = false; // node isn't popup node
                s = node.localName;
                if (s == 'menupopup' || s == 'popup' || s == 'menulist'
                    || IsAutoComplete(node) || IsMenuBtn(node) || IsUrlbarDropmarker(node)) {
                    isPop = true;
                } else if (s == 'dropmarker' && node.getAttribute('type') == 'menu'
                           && node.parentNode.firstChild.localName == 'menupopup') {
                    isPop = true;
                } else if (s == 'menu') {
                    isPop = (node.parentNode.localName == 'menubar');
                } else if (IsButton(node)) {
                    for (elt = node; (elt = elt.nextSibling) != null;) {
                        if (elt.localName == 'dropmarker' && elt.width > 0 && elt.height > 0)
                            break;
                    }
                    if (elt)
                        break;
                }
                if (isPop)
                    break;
            }
            if (PopElt && node) {
                // whether node is child of PopElt
                for (elt = node.parentNode; elt != null; elt = elt.parentNode) {
                    if (elt == PopElt)
                        return PopElt;
                }
            }
            return isPop ? node : null;
        }
    
        function getPopupMenu(elt) {
            if (whitesInx > -1 && PopElt)
                return PopElt;
    
            var nodes = elt ? elt.childNodes : null;
            if (nodes) {
                for (let node of nodes) {
                    if (node.localName == 'menupopup' || node.localName == 'panel')
                        return node;
                }
            }
    
            var s = elt.getAttribute('popup');
            return s ? document.getElementById(s) : null;
        }
    
        function getPopupPos(elt) {
            if (elt.id == 'bookmarks-menu-button')
                return null;
    
            var x, y, pos, i;
            for (pos = 0, x = elt.screenX, y = elt.screenY;
                 elt != null; elt = elt.parentNode)
            {
                if (elt.localName == 'window' || !elt.parentNode)
                    break;
                else if (elt.localName != 'toolbar' && elt.localName != 'hbox'
                         && elt.localName != 'vbox');
                else if (elt.height >= 3 * elt.width) {
                    if (elt.height >= 45) {
                        pos = 9;
                        break;
                    }
                } else if (elt.width >= 3 * elt.height) {
                    if (elt.width >= 45) {
                        pos = 8;
                        break;
                    }
                }
            }
            try {
                i = (pos & 1) ?   // is pos odd?
                    (x <= elt.width / 2 + elt.screenX ? 1 : 3) :
                    (y <= elt.height / 2 + elt.screenY ? 0 : 2);
            } catch(e) {
                i = 0;
            }
            return popupPos[i];
        }
    
        function AutoPopup() {
            PopTimer = null;
            if (!overElt)
                return;
    
            if (whitesInx > -1 && PopElt && whiteIDs[whitesInx].run) {
                whiteIDs[whitesInx].run(overElt);
                return;
            }
            if (!PopElt)
                PopElt = overElt;
            if (overElt.localName == 'dropmarker') {
                PopElt.showPopup();
            } else if (overElt.localName == 'menulist') {
                overElt.open = true;
            } else if (IsPanelMenuBtn(overElt)) {
                PopElt = document.getElementById('appMenu-popup');
                PanelUI.show();
            } else if (IsWidgetBtn(overElt)) {
                PopElt = document.getElementById('customizationui-widget-panel');
                if (overElt.hasAttribute('onmousedown'))
                    overElt.dispatchEvent(new MouseEvent('mousedown'));
                else
                    overElt.dispatchEvent(new UIEvent('command'));
            } else if (IsDownloadBtn(overElt)) {
                PopElt = document.getElementById('downloadsPanel');
                DownloadsPanel.showPanel();
            } else if (IsSearchBtn(overElt)) {
                searchBar.openSuggestionsPanel();
            } else if (IsOverflowBtn(overElt)) {
                PopElt = document.getElementById('widget-overflow');
                if (!overElt.open)
                    overElt.click();
            } else if (overElt.id == 'sidebar-switcher-target') {
                PopElt = document.getElementById('sidebarMenu-popup');
                if (!overElt.classList.contains('active'))
                    SidebarUI.toggleSwitcherPanel();
            } else if (IsUrlbarDropmarker(overElt)) {
                PopElt = gURLBar.panel;
                if (!gURLBar.textbox.hasAttribute('open'))
                    overElt.click();
            } else {
                PopElt = getPopupMenu(overElt);
                if (IsCustomizationBtn(overElt))
                    overElt.open = true;
                else {
                    try {
                        let Pos = getPopupPos(overElt);
                        PopElt.removeAttribute('hidden');
                        PopElt.openPopup(overElt, Pos, 0, 0, false, false, null);
                    } catch(e) {
                        PopElt = null;
                    }
                }
            }
        }
    
        function HidePopup() {
            try {
                if (overElt.localName == 'dropmarker') {
                    try {
                        PopElt.parentNode.closePopup();
                    } catch(e) {
                        try {
                            PopElt.hidePopup();
                        } catch(e) { }
                    }
                } else if (overElt.localName == 'menulist')
                    PopElt.open = false;
                else if (PopElt.hidePopup)
                    PopElt.hidePopup();
                else if (PopElt.popupBoxObject)
                    PopElt.popupBoxObject.hidePopup();
                else if (IsSearchBtn(overElt))
                    searchBar.textbox.closePopup();
                else if (IsPanelMenuBtn(overElt))
                    PanelUI.hide();
                else if (IsUrlbarDropmarker(overElt))
                    if (gURLBar.textbox.hasAttribute('open'))
                        overElt.click();
            } catch(e) { }
    
            HideTimer = null;
            overElt = PopElt = null;
        }
    
        function MouseOver(e) {
            if (!alwaysPop && !document.hasFocus())
                return;
            var popNode, n = e.originalTarget;
    
            whitesInx = -1;
            if (n.hasAttribute('id') && whiteIDs.some(function(k,i,me) {
                if (k.id == n.id) {
                    overElt = n;
                    whitesInx = i;
                    PopElt = document.getElementById(k.popMemu);
                    PopTimer = setTimeout(AutoPopup, showDelay);
                    return true;
                }
            }))
                return;
    
            popNode = getPopupNode(e.originalTarget);
            if (!popNode || (popNode && popNode.disabled) || isBlackNode(popNode)) {
                MouseOut();
                return;
            }
            if (HideTimer) {
                clearTimeout(HideTimer);
                HideTimer = null;
            }
            try {
                if (IsAutoComplete(popNode)) {
                    return;
                };
                for (var elt = popNode; elt != null; elt = elt.parentNode) {
                    if (elt.localName == 'menupopup' || elt.localName == 'popup')
                        return;
                }
            } catch(e) { }
            if (PopElt && popNode == PopElt && PopElt != overElt)
                return;
            if (overElt && popNode != overElt)
                HidePopup();
            overElt = popNode;
            PopElt = null;
            PopTimer = setTimeout(AutoPopup, showDelay);
        }
    
        function MouseOut() {
            if (PopTimer) {
                clearTimeout(PopTimer);
                PopTimer = null;
            }
            if (!HideTimer && PopElt)
                HideTimer = setTimeout(HidePopup, hideDelay);
        }
    
        window.addEventListener('mouseover', MouseOver, false);
    
    })();
    Alles anzeigen

    Wenn es passt, lade ich es bei Github hoch.

    Erledigt.

    Mfg.
    Endor

  • Diskussionsthread für Benutzerskripts

    • Endor
    • 11. Juni 2023 um 14:12

    Ich teste in Thunderbird 102.12! !

    nicht in Daily.

  • Diskussionsthread für Benutzerskripts

    • Endor
    • 11. Juni 2023 um 14:08

    edvoldi.

    Dein Script baut nur die Schaltfläche ein und ruft bei klick
    about:addons auf. Mehr nicht. Der Rest vom Script wird so ja nicht verwendet.

    Mfg.
    Endor

  • Diskussionsthread für Benutzerskripts

    • Endor
    • 11. Juni 2023 um 14:03

    Hier nochmals das Script, hatte eine Änderung probiert, die oben noch drinnen ist,

    Dann ging es hier aber auch nicht mehr.

    Code
     // Add-ons aktualisieren
            
       (function() {
    
        if (location != 'chrome://messenger/content/messenger.xhtml') return;
        
        var toolbarbutton = document.createXULElement('toolbarbutton');        
           
        var props = {
                id: 'addons-update-button',
                class: 'toolbarbutton-1',
                label: 'Add-ons Update',
                tooltiptext: 'Add-ons aktualisieren',
                style: 'list-style-image: url("file:///F:/Thunderbird/Profilordner/chrome/icons/Bild78.png")',
                oncommand: 'onCommand();'
            };
            for (var p in props) toolbarbutton.setAttribute(p, props[p]);
    
        var toolbox = document.getElementById("mail-toolbox");
        toolbox.palette.appendChild(toolbarbutton);    
    
        var toolbar = document.getElementById("tabbar-toolbar");
        toolbar.insertItem("addons-update-button");
        
        function onCommand(event) {
        let frameScript = function() {
          addEventListener('pageshow', function onPageshow(event) {
            let document = event.target;
            if (document.URL != 'about:addons')
              return;
            removeEventListener('pageshow', onPageshow);
    
            content.setTimeout(function() {
              document.querySelector('addon-page-options panel-item[action="check-for-updates"]').click();
              let categories = document.getElementById('categories');
              let item = categories.querySelector('button[viewid="addons://updates/available"]');
              item.click();
    
              categories.addEventListener('mousedown', function onMousedown(event) {
                if (event.target != item && event.target.parentNode != item) {
                  item.hidden = true;
                  categories.removeEventListener('mousedown', onMousedown);
                };
              });
            }, 0);
          });
        };
    
        let frameScriptURI = 'data:,(' + frameScript.toString() + ')()';
        let window = event.target.ownerGlobal;
        window.openTrustedLinkIn('about:addons', 'tab');
        window.gBrowser.selectedBrowser.messageManager.loadFrameScript(frameScriptURI, true);
      };
      })();
    Alles anzeigen

    Symbol:

    Achtung Pfad zum Symbol müsst Ihr noch anpassen.

    Mfg.
    Endor

  • Diskussionsthread für Benutzerskripts

    • Endor
    • 11. Juni 2023 um 13:54

    Wie geschrieben nur in Release 102.12 getestet.

    Im Daily müsste man das auch ändern wie bei den anderen.

    @milupo

    Der Pfad zum Symbol ist im Script für edvoldi angepasst.
    Dropbox.....

    Mfg.
    Endor

  • Diskussionsthread für Benutzerskripts

    • Endor
    • 11. Juni 2023 um 11:51

    Hallo edvoldi.

    Ich habe es versucht aber mein Können reicht nicht.
    Script habe ich nur in Release getestet.
    Es wird eine Schaltfläche eingefügt mit Symbol usw,
    aber sonst tut sich nichts. about:addons öffnet sich auch leider nicht
    usw. Ob im Hintergrund auf neue Add-ons geprüft wird keine Ahnung.

    Hier mein Versuch:

    JavaScript
     // Add-ons aktualisieren
            
       (function() {
    
        if (window.__SSi != 'window0')
        return;
        
        var toolbarbutton = document.createXULElement('toolbarbutton');        
           
        var props = {
                id: 'addons-update-button',
                class: 'toolbarbutton-1',
                label: 'Add-ons Update',
                tooltiptext: 'Add-ons aktualisieren',
                style: 'list-style-image: url("file:///C:/Dropbox/Chrome/Icons/Add-ons-Web.png")',
                oncommand: 'onCommand();'
            };
            for (var p in props) toolbarbutton.setAttribute(p, props[p]);
    
        var toolbox = document.getElementById("mail-toolbox");
        toolbox.palette.appendChild(toolbarbutton);    
    
        var toolbar = document.getElementById("tabbar-toolbar");
        toolbar.insertItem("addons-update-button");
        
        function onCommand(event) {
        let frameScript = function() {
          addEventListener('pageshow', function onPageshow(event) {
            let document = event.target;
            if (document.URL != 'about:addons')
              return;
            removeEventListener('pageshow', onPageshow);
    
            content.setTimeout(function() {
              document.querySelector('addon-page-options panel-item[action="check-for-updates"]').click();
              let categories = document.getElementById('categories');
              let item = categories.querySelector('button[viewid="addons://updates/available"]');
              item.click();
    
              categories.addEventListener('mousedown', function onMousedown(event) {
                if (event.target != item && event.target.parentNode != item) {
                  item.hidden = true;
                  categories.removeEventListener('mousedown', onMousedown);
                };
              });
            }, 0);
          });
        };
    
        let frameScriptURI = 'data:,(' + frameScript.toString() + ')()';
        let window = event.target.ownerGlobal;
        window.openTrustedLinkIn('about:addons', 'tab');
        window.gBrowser.selectedBrowser.messageManager.loadFrameScript(frameScriptURI, true);
      };
      })();
    Alles anzeigen

    Vielleicht kann ja @milupo etwas daraus machen.

    Mfg.
    Endor

  • Diskussionsthread für Benutzerskripts

    • Endor
    • 10. Juni 2023 um 14:24

    seipe

    In Firefox verwende ich dazu diesen CSS Code:

    CSS: usercssloader.uc.js.css
    @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
    @-moz-document url(chrome://browser/content/browser.xhtml){
        
    #usercssloader-menu {
    appearance:none!important;
    margin-right: -6px !important;
    margin-left: -1px !important;
    background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAADJklEQVR4Xi3Pb0yVdRjG8e%2Fze57ncDrAOWwRhDQ7xYAMlAgIBW2txaio5TvMzZa68oWtzRdKbXbIpWyOzcWLWqXkFjUtsIksW72wuTVx%2BEJHCxhkSCNoKLYDwuH8e66eNV98dr24t%2Fu%2BLwsAoKsucqg4tFS4kiTtge4PFAkRksADGdsyua4JXJ7ITH0yQw%2BABTB3sHGipGNjJX8MgzGw6oEBQi5kPYinQBYEbDDAX5PEulJXPhqn2bQE2Fayfa2S8THOfu%2FwzTkDzmOQV8nAkOHMoIFgmS9K3w%2Fi5DmP1fwqdrbRFIR6euqJ6btc2Y4jsGWM0emOWrU2FAtQRTSiid7n9EJtkQCVlebrUle9lnuLVA3v09%2FG8diLCFxp%2BDVprF2a2KHqsrACtqVbQy9L8T2qq4goaKOpz5uka22Kn1yn2gBHOPMSx9o3obJokbS8R%2Fp3txTfK918Q%2B2tjwrQYPcWaW6Xdj5fKkB9B2uks%2Bv1VICYSWXQjia4eWuB8z2%2F0%2F%2FpGMMD04yP3qFzfzXBoE3sszGmR27Tubuc3KDDsf4ZsME2iO4GjuqXQh1orxDwv1OxBsX2VQlQcWGObnzdog%2F3bhCg0uIHNPLFVqnf%2F8DlA2ctDSTgxNFnOHFgE7jAg7kQcjnS8TRgQcCiprGQzncrIZ0i%2Fu0so7lLODlgsh6QSMNCAix8BhJJNH6b5NwyFNhwLwWuB%2FNxEoemudi9wMT8Cq4LBrDwgLUULK%2FBPR9%2BjC4ytPUC17%2F8DR6CpYEplt%2BeJTX7OH9HbEL5NvKwjGvj4AHprC8DSZ%2B%2FzHJgI%2BuI%2BxdvbL9E%2BJRLJr%2BSr5LXKd8foqY8QjqN7fxzlzhaAy8LGYHnQTxJ3hNhFlptCi4XsP7PEoaD4mr4KlveeZjNG4qYvDbKyipJolCXOI70U630Y6uvRfrZzyuvSKOvavK9Kp2OFqv3zagWLzb7s21aubBZ519HFjzrg8NP8utbu2hWMIyyHpYBYwyOa2Hn2cwuJAiHAthp%2Be087s4n6e5LjwzeodECAKiAffk5PJLOkJKFACzLZ8B27jfMYgUM7mKSuzPwMcB%2F6Jh%2FV5xUni0AAAAASUVORK5CYII%3D") no-repeat !important;
    background-position:1px 6px!important;
    }
       
    #usercssloader-menu:hover {
    appearance:none !important;
    margin-left: -5px !important;
    margin-right: -3px !important;
    padding-right: 1px !important;
    background: #E3E3E3 url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAADJklEQVR4Xi3Pb0yVdRjG8e%2Fze57ncDrAOWwRhDQ7xYAMlAgIBW2txaio5TvMzZa68oWtzRdKbXbIpWyOzcWLWqXkFjUtsIksW72wuTVx%2BEJHCxhkSCNoKLYDwuH8e66eNV98dr24t%2Fu%2BLwsAoKsucqg4tFS4kiTtge4PFAkRksADGdsyua4JXJ7ITH0yQw%2BABTB3sHGipGNjJX8MgzGw6oEBQi5kPYinQBYEbDDAX5PEulJXPhqn2bQE2Fayfa2S8THOfu%2FwzTkDzmOQV8nAkOHMoIFgmS9K3w%2Fi5DmP1fwqdrbRFIR6euqJ6btc2Y4jsGWM0emOWrU2FAtQRTSiid7n9EJtkQCVlebrUle9lnuLVA3v09%2FG8diLCFxp%2BDVprF2a2KHqsrACtqVbQy9L8T2qq4goaKOpz5uka22Kn1yn2gBHOPMSx9o3obJokbS8R%2Fp3txTfK918Q%2B2tjwrQYPcWaW6Xdj5fKkB9B2uks%2Bv1VICYSWXQjia4eWuB8z2%2F0%2F%2FpGMMD04yP3qFzfzXBoE3sszGmR27Tubuc3KDDsf4ZsME2iO4GjuqXQh1orxDwv1OxBsX2VQlQcWGObnzdog%2F3bhCg0uIHNPLFVqnf%2F8DlA2ctDSTgxNFnOHFgE7jAg7kQcjnS8TRgQcCiprGQzncrIZ0i%2Fu0so7lLODlgsh6QSMNCAix8BhJJNH6b5NwyFNhwLwWuB%2FNxEoemudi9wMT8Cq4LBrDwgLUULK%2FBPR9%2BjC4ytPUC17%2F8DR6CpYEplt%2BeJTX7OH9HbEL5NvKwjGvj4AHprC8DSZ%2B%2FzHJgI%2BuI%2BxdvbL9E%2BJRLJr%2BSr5LXKd8foqY8QjqN7fxzlzhaAy8LGYHnQTxJ3hNhFlptCi4XsP7PEoaD4mr4KlveeZjNG4qYvDbKyipJolCXOI70U630Y6uvRfrZzyuvSKOvavK9Kp2OFqv3zagWLzb7s21aubBZ519HFjzrg8NP8utbu2hWMIyyHpYBYwyOa2Hn2cwuJAiHAthp%2Be087s4n6e5LjwzeodECAKiAffk5PJLOkJKFACzLZ8B27jfMYgUM7mKSuzPwMcB%2F6Jh%2FV5xUni0AAAAASUVORK5CYII%3D") no-repeat !important;
    background-position:5px 6px!important;
    }
     
    #usercssloader-menu > .menu-text,
    #usercssloader-menu > .menu-right {
    display: none !important;
    }
    }
    Alles anzeigen

    Werte eventuell für dich noch anpassen.

    Mfg.
    Endor

  • Diskussionsthread für Benutzerskripts

    • Endor
    • 10. Juni 2023 um 14:21

    addonlister.uc.js Script funktioniert hier auch wieder.
    Habe noch mal das Script neu runter geladen angepasst und nun
    funktioniert es einwandfrei. Keine Ahnung was da mal wieder
    klemmte..... :/ Wie üblich das Teil was 30cm vorm Monitor sitzt......

    edvoldi
    Danke für die Rückmeldung.
    Wie geschrieben, hier nun wieder alles gut.

    Schönes Wochenende allseits.

    Mfg.
    Endor

  • Diskussionsthread für Benutzerskripts

    • Endor
    • 10. Juni 2023 um 13:35

    @milupo funktioniert das Script addonlister.uc.js im Daily?

    Schaltfläche und Kontextmenüeinträge unter Extras sind da, aber bei klick tut sich nichts?

    Ist das bei Dir auch so?

    Mfg.
    Endor

  • Diskussionsthread für Benutzerskripts

    • Endor
    • 10. Juni 2023 um 08:09

    Hallo edvoldi und @milupo.

    Vielen Dank habe sie jetzt alle auf

    Zitat von milupo

    durch unifiedToolbar


    Mit welcher Angabe, soll ich die Scripte bei Github aktualisieren?

    Ein neues hätte ich da noch Neustart für Hamburger.

    JavaScript: Restart-Hamburger.uc.js
    (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="black" 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-quit');
    refItem.parentNode.insertBefore(menuitem, refItem);
    
    })();
    Alles anzeigen

    Mfg.
    Endor

  • 1
  • 2
  • 3
  • 4
  • Hilfreichste Antworten

Aktuelle Programmversion

  • Thunderbird 138.0.2 veröffentlicht

    Thunder 20. Mai 2025 um 16:44

Aktuelle ESR-Version

  • Thunderbird 128.10.2 ESR veröffentlicht

    Thunder 20. Mai 2025 um 20:27

Keine Werbung

Hier wird auf Werbeanzeigen verzichtet. Vielleicht geben Sie dem Website-Betreiber (Alexander Ihrig - aka "Thunder") stattdessen etwas aus, um diese Seiten auf Dauer finanzieren zu können. Vielen Dank!

Vielen Dank für die Unterstützung!

Kaffee ausgeben für:

3,00 €
1
Per Paypal unterstützen*

*Weiterleitung zu PayPal.Me

Thunderbird Mail DE
  1. Impressum & Kontakt
  2. Datenschutzerklärung
    1. Einsatz von Cookies
  3. Nutzungsbedingungen
  4. Spendenaufruf für Thunderbird
Hilfe zu dieser Webseite
  • Übersicht der Hilfe zur Webseite
  • Die Suchfunktion benutzen
  • Foren-Benutzerkonto - Erstellen (Neu registrieren)
  • Foren-Thema erstellen und bearbeiten
  • Passwort vergessen - neues Passwort festlegen
Copyright © 2003-2025 Thunderbird Mail DE

Sie befinden sich NICHT auf einer offiziellen Seite der Mozilla Foundation. Mozilla®, mozilla.org®, Firefox®, Thunderbird™, Bugzilla™, Sunbird®, XUL™ und das Thunderbird-Logo sind (neben anderen) eingetragene Markenzeichen der Mozilla Foundation.

Community-Software: WoltLab Suite™
  • Alles
  • Forum
  • Lexikon
  • Artikel
  • Seiten
  • Erweiterte Suche
  • Deutsch
  • English