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

  • FF126: AnimationToggleButton.uc.js tuts nich mehr

    • Endor
    • 16. Mai 2024 um 16:56

    Hallo Zitronella.
    In Deinem Script müsstest Du noch Zeile 64 anpassen.
    Da steht noch: BrowserReloadSkipCache() statt BrowserCommands.reloadSkipCache()

    Mfg.
    Endor

  • FF126: AnimationToggleButton.uc.js tuts nich mehr

    • Endor
    • 16. Mai 2024 um 08:19

    Hallo Speravir .
    Danke für den Hinweis. :thumbup:
    Hatte ich in der Eile übersehen.
    Ist oben korrigiert.
    Für alle Fälle hier nochmals die korrigierte Version:

    Code
    // 	28_AnimationToggleButton.uc.js
    // 	v. 0.4.2a
    //  16.05.24 Endor Anpassung an Firefox 126+
    //	211104:	BrokenHeart zuletzt in:
    //	https://www.camp-firefox.de/forum/thema/133649
    
    (function() {
    
       if (location != 'chrome://browser/content/browser.xhtml')
          return;
    
       try {
    
          CustomizableUI.createWidget({
    
             id: 'animation-button',
             type: 'custom',
             defaultArea: CustomizableUI.AREA_NAVBAR,
    
             onBuild: function(aDocument) {
    
                var button = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                var attributes = {
                   id: 'animation-button',
                   class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                   removable: 'true',
                   label: 'Animation',
                   tooltiptext: 'Klick li: Gif ∞\nKlick mi: Gif 1x \nKlick re: Gif aus',
                   oncontextmenu: 'return false'
                };
                for (var a in attributes)
                   button.setAttribute(a, attributes[a]);
                var animmode = Services.prefs.getCharPref('image.animation_mode');
                button.setAttribute('anim', animmode);
                button.IsOnce = (animmode == 'once');
    
                function onClick() {
    
                   var button = document.getElementById('animation-button');
                   function setPref(value) {
                      Services.prefs.setCharPref('image.animation_mode', value);
                   };
                   function getPref() {
                      return Services.prefs.getCharPref('image.animation_mode');
                   };
                   function setIsOnce(value) {
                      var windows = Services.wm.getEnumerator('navigator:browser');
                      while (windows.hasMoreElements()) {
                         windows.getNext().document.getElementById('animation-button').IsOnce = value;
                      };
                   };
    
                   switch (event.button) {
    
                      case 0:
                         var animmode = getPref();
                         setPref('normal');
                         if (button.IsOnce) {
                            BrowserCommands.reloadSkipCache();
                            setIsOnce(false);
                         } else {
                            if (animmode == 'normal')
                               BrowserCommands.reloadSkipCache()
                            else
                               BrowserCommands.reload();
                         };
                         break;
    
                      case 1:
                         setPref('once');
                         BrowserCommands.reloadSkipCache();
                         setIsOnce(true);
                         break;
    
                      case 2:
                         setPref('none');
                         event.preventDefault();
                         event.stopPropagation();    
                         BrowserCommands.reload();
                         break;
                   };
    
                   var windows = Services.wm.getEnumerator('navigator:browser');
                   while (windows.hasMoreElements()) {
                      windows.getNext().document.getElementById('animation-button').setAttribute('anim', getPref());
                   };
                };
    
                button.setAttribute('onclick', '(' + onClick.toString() + ')();');
                return button;
             }
          });
    
       } catch(e) { };
    
       var css =
          '#animation-button[anim="normal"] {list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAoCAYAAAC4h3lxAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH4wkNFRE2JfCuMgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAS6SURBVFjD7ZnNTxtHFMDfm7ENtbGxoV7b2A4gATZ2VEybCyAB5d4qUntLBZcI5dQ/oKcee4l6qBRFgTYqaUqjSFS5tVUrIEJCjQqYDxmIAwUMCV+GxMYfLDs7PQQQjhcKxY03Up60WntmZ/b93pdmdhAAoK2tTQCA9yRJsgEAgoqEUvoCEWc7Ojoet7e3Z/Vjc3Ozh1J6GRE5qFdQluXxgYGBXzjPVFODiB8dKM8Z13JQFwchRAIEjojvNzU1TQHAcgYApZQAAGxXbFeEykKdnHOqJgB30v1H+Xj5b4go6XQ6dxbAwY+UMVWyq92laoudOI9XHg2lzs5OGg6HWX9//0sPwRsmc3Nz1xHxbltbW22GB5REz/TbzhfOP43bxiWOnMRKYhXLpuWGXbJryGdhQkQPANxsaWm5ciyARbRs+Cf8t3QJXeywLWIJWy3WyUnf5NWEJmHME8D2/t2AiJ8dG0LV4ep7R5U/9Mq2frU6Uv1zvsxvsVi+OkwIRJsigDVtjRRtFkWOm6RkoWTasGeI/0cdzlWnrVarCADssMwqPaRj2ZbPLM7ACliBdNaXl+2UhS+FL32t4Zp4rjyiCCBS0XSipWSgIhU1Z1I+WTbtGfPcNj01rdXP1d/IFYQiwGbhpjNpSTqPG/T8wvOaHe3OqZPYkXTM1vxV8yPKyAAAjCvGrcBcoCsXEEQ5SDkJe8KfSoVS0at9aWP63XB5+PKplU845r0j3h7CiXi03bRiWgvMB7oop4nzABwbBtGCqDP4QfCaa8v1sChaFOGE03hp/MKSZenDJE2aTjO5PWV/7B3zfo8yKuaLadm0Vo/1N4OVwWsSSoacAgAAxDQxa0gIfQLC2Se2p+xPvCPeH5DhicluipjW66CuO1gZvMqQGXISQucVW9K26B313iaM7J7m+eJI8dPAQqCLcpp8HQAn1nFb2vakdqy2m0jkTGW2eKn4WWAxcIsCTf1vAAgoX1y92ONOuEeV+oW0MO8d8d4hUmbCnhpisfhZ3d9131Kg6ZwDIKDsX/X3CLNCqGqk6r57xz2RoXxKWPKN+r6j0ulfriTmJXOkJlrzIKcACCj71/x3hFlhBgAAOcpVo1W9roRrEgBA2BWe1I7VdpE9speT5SajYk6q0IHyvjVfrzAjhDLaOcrVI9W9er8+4ph1PKJ7VIQ8yL8ByL51X69txjahCMeRuaZcg3ndM59Ubfwb/l7btG1SzTu0Yz3g2/Dds4WULa+qrxaK65eUY8oesgffhD2yIgDhhJ9346GGHIC3APlK4rQm/c5mzaYzbx+zDHH7uQCiumhV1BH9/G0IvaYQIgAgG7eMa85C54Taqo95xzx75G/WEl3DGItRSouMK8YVz4rnrlotzTlHURQXsks+5/dlWWZqDhPOOTLGfh8aGlrP8sDg4OBGY2PjjYKCglqNRmPknBOVKb+TTqcXh4eH15UXlK8c2TQ0NLj0ev2XL8fySDwe75YkSTV5YTabKwkh3wAAl2X5YRYAIkJra+uvhJDSfQuo6tBj/zhMBgBgjF0nCi4DrVb7BQCI+wOYmq4D5QHgkVar/SnLAwdeaG5udlNKPwaASs65ao5eCSExSZLGS0tLH/T19fF/AGeo9vFEBn4KAAAAAElFTkSuQmCC)} ' +
          '#animation-button[anim="once"] {list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAoCAYAAAC4h3lxAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH4wkNFQw22pzCLgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAATOSURBVFjD7VlvTFtVFD/3vtcWWlpAUkrbDazQkWkilfhl+zAahARNZjIT9QMzkS8EPm+wADMxWdRhsk842cYgbsbExWRqBkMGCwrbPpBsisi/V9rCZsBoHGwPKO277x0/sJqxviKVah/Gk7y89+7Nve/8zvmdc++5jwAAVFRUFCPia4wxGyIS0JDwPC9SSr8tLS0daG1tjeknXq/XSyn9EAAoaFcIIn4RDAZPBoPBjQAB4J2o8owhRdSW5jxPkBBAAHjT5XL1AMDYhn5KaSYAwMGDa7o3XheeB9AWgqkpx/x771sXCCEyIr4YAyD6UPhM2GQyMc1xx+FYsQBYF6JUqq2t5Xw+nzw4OAigcd6rit/vP0UI+ay8vHzvBg+oyeqqMXT7tm1+YiJNIgRYScmq2eP5xWkwhPkUYuAIIcUAcKasrKw6riL375sjJ064/HN3+XC07Zu+9LCnxBw6csRfZDKFUgVi8dHdRAg5HJdC5zryA48rH5UfRvUrly4VBFJl/uzs7JN/5lZCbKoA5heeEkdGDCvxJvnyK+OyKKb/zYgn20pzVqs1AgBy9F0VwFqI3/QjOh0ooRCf8Io9Pu4Ya2t77nvG9OGkrRNqjQYD21Q5SQKalsYSsuTkpHO05bgtQilQjtszUVsrPMvzEcN2AVD13LuY4fFETPEGvfJyyGixbD2Ip6acPzY15zJK1783cF2vdHS4p5PhCVUAhCCpq7tXYMuV9U/2FRUyQ3X13YIEVtKJ5hZbhNKNTu0fMEidne5pxvSRpFMIACDX+iC9tTVQeOuW7eexnwwSAaJ4PCH9/v0Lu4zG1fStTC4IzvGmZluIEFClZN81g0Q592TN28Jenpf0SQUAAGCxiMaqKnFPVVXiE/tmHJONx3JDlMKm8dTba2AE3EJNja+Y4yRdUii0XfHN2H0NDXkipWRLmepqb1r4kwvuKVnWSSkH4A84phsa7EuUApfIuJ6etMiFi4mDSAgAIsHuHve0IOTdV+sPBOy+o0fzxGi2SVS6u9MiFz8tEmSZZ/8AAIJXr7qFri7zcstx+6zgsy1tVD4v0NBoX4wXsFuVK1fS127cKJhLKgBEgr29Rb7OrowVAABZJtjS4gzMzNgeAADMztpnGo85fkdMjDZxd8EhiknJQlHl+/oK/R3nzeLj7bIM2NTsCNTXZRhPf2wREVNTW/B/RZtr/YX+cx2WB2q9skyUj05nLgNAyk4yNrVaf3+h/+xZy0MtV2hxPdA/UORvP6NueS2Jqgfm5qxL7e2WpZ1QI9M43CawQ2THnUr85wCoBrHZLMFbh0MpA5efv0a3BcBqXcw8dGjxhf8p9C9RiAAA3rmTvrJrt21RY2e7MD1t+e2x15gamlcUJUgpfXpoWC8NDTsDGja2IknSTTUKNSqK8lDjTEFZlj+oq6ubjd2tIUJlZWUmY+wlnuddGoyLX8Ph8HfDw8OziAj19fW8IAg3AYBTFGWY4BO/ZPbt27fLaDS+CwCIiPdEUTzPGNNMZGRlZbkopW0AgIqiDMUAIISA1+vto5TmrNcDyGnJHYQQBABlfcsjn6KxBQyCTqdrBoDIowGylq6o8gAwotPpPo/xQNQLBw4c2M1x3KsA4NLSr1dK6UPG2GhOTs7Xly9fxj8A10cIqTl/HS8AAAAASUVORK5CYII=)} ' +
          '#animation-button[anim="none"] {list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAoCAYAAAC4h3lxAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH4wkNFRMXW6/c7gAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAATFSURBVFjD7ZlfTFtVHMd/55z+Adrbv7fg5E9L/4hLpg/GkABJwcb4plnilhg18OBC9rQnn3wyZosQJXswIwzQRRBxWcbcMnSaEf6EhMiDjj9hQssmVMV20FG4QHu59x4fRgnQWwTajUviL2nannPPvb/P7/f9/dLTgwAAfD5fLgC8LAhCHgAgUJARQqIIocmampqp6urqpHnk9XpLCCEnEUIUlGtIkqSRvr6+O5Rud1OFEHoz4TxPqRqosjjUGAsIgCKEXqmoqBgHgD+3ARBCMADAO9Goo/Thw1oKQJQEEGbZnvqCgp8RQoJGoylMAkh8eD4Ws2QLAlGadiyrq8VbpVRbW0v8fr/Y29sLAAAYjphNT083IIQ6fD7f8W0ZkLN1jebxDMv+EtDrZwml2M1xjsL5+TLV+rruMBsTQqgEAJoqKyvfSwmwkpPz6LLH0+xXq5c2B41Gf6nFMvZuIHBGG48zhwTweONdhxB6P6WEbtntV7c5v2HD2dn/DBYW3jis8JvN5rrNgkAoTxYgyjDBAZ0umOomHSbT/ZhWu3xAH9Lq0zabjQcAMfFdFoCXifxW0wKIcZVK2O/DQ2az/3ZJyUWJkOVMZUQWQL2+btgtUjwA0QiCaj8Pmjeb79c5nVe6GSb0o8fTmCkIWQATx+WXrq7mp1p0Ohp9IXsfRbxgNk9eKC7+NoaQCABwW6+P/OB2t9AMQMgXMaX41OzsqQJB0O+ceikeZ6uCwZN7jrzJ9OCC09kWw5jfOt7NMKE7bneLhPFKOgApZcBwXP6Hk5Nn/TbbwIROF9RQSl7kuCJXOPyamucNe7l5xGSaqnO5vl5DSLZebjFMiHg8Ta8HAmexKOoyCgAAoF1bs52YnX37xEGatdEY+NTp/GYlhfMJu8EwYepytb4RCJxBkqTLjITStAWjcabe5brCYRzfy/XfGwx/33W7WyjGq88CYNc+vmg0Bj53uVqjGO+rzXYZDHM9Hk8zxXjtaQJIvzkcbSGW/VXWeYPhQb3T2b64o2D3atcZZq7H5fqSYhx7GgDSPYejrZllJ87b7ddCVuvoNs0bDLOfud1fLRISS0d+143G4FR+/s1MA0gjDkf7ZZb9HQBAQEg673B0hq3WMQCAJYMh0OB2t0QwXs9EDcUJ4TPShTadt9s7m1h2YuuggJD0icPReS4rK9iemzu8cEDZpGv/BSCN2e2dTTbbqNykiJB48dix/sPc4OwmITput3c22mxjSt6hpczAeFHR1UspIq8kk81AxGwev5Sbe+8o7JFlAaQn/xPRIwtwlOzIA8gWcRbPZ38QieQfllN5KyvPpQWg5zj3qxx37n8JPSMJYQCQJvX6kNliGVVa95ljmMmtv2CSAERRXCKE6Lt1ur+6nc4OpUaaUop4nv8jSUKU0muSJIlKlgmlFImieHdwcDCclIH+/v5H5eXljVqt9rhKpWIopVhhznOxWGxmaGgoLDePdh7ZlJWVFeTk5Hz8ZC0NLi8vtwqCoJi6MJlMxRjjLwCASpI0kASAEIKqqqqfMMbWjQgo6tBj4zhMAgAQRbEBy6QM1Gr1RwDAbywQlfRKOA8Aw2q1+rukDCSy4PV6CwkhbwFAMaVUMUevGOMlQRBGrFbrza6uLvovNfXp2AJLOUkAAAAASUVORK5CYII=)}';
       var stylesheet = document.createProcessingInstruction('xml-stylesheet', 'type="text/css" href="data:text/css;utf-8,' + encodeURIComponent(css) + '"');
       document.insertBefore(stylesheet, document.documentElement);
    
    })();
    Alles anzeigen

    Mfg.
    Endor

  • Script "Vertical Add-on Bar"--> seit FF 126 Leiste leer

    • Endor
    • 15. Mai 2024 um 19:48

    Hallo zusammen.
    Ich kann jetzt nicht sagen ob das hilft.
    Der Autor hat eine neuere Version auf Github:

    CustomJSforFx/addonbar_vertical.uc.js at master · Aris-t2/CustomJSforFx
    custom scripts. Contribute to Aris-t2/CustomJSforFx development by creating an account on GitHub.
    github.com

    Hier das Script:

    CSS
    // 'Vertical Add-on Bar' script for Firefox by Aris
    //
    // no 'close' button
    // 'toggle' toolbar with 'Ctr + Alt + /' on Windows/Linux or 'Cmd + Alt + /' on macOS
    // optional toggle button hides the toolbar temporarily, it gets restored on every restart
    // 'Vertical Add-on Bar' entry is only visible in toolbars context menu when in customizing mode
    //
    // flexible spaces on toolbar work 'vertically'
    // toolbar can be on the left or on the right
    // toolbar is display horizontally in customizing mode
    
    // [!] Fix for WebExtensions with own windows by 黒仪大螃蟹 (for 1-N scripts)
    
    Components.utils.import("resource:///modules/CustomizableUI.jsm");
    ChromeUtils.importESModule("resource:///modules/CustomizableUI.sys.mjs");
    
    
    var AddonbarVertical = {
      init: function() {
    
    	if (location != 'chrome://browser/content/browser.xhtml')
          return;
    
    	/* blank tab workaround */
    	try {
    	  if(gBrowser.selectedBrowser.getAttribute('blank')) gBrowser.selectedBrowser.removeAttribute('blank');
    	} catch(e) {}
    	  
    	var addonbar_v_label = 'Vertical Add-on Bar'; // toolbar name
    	var button_label = 'Toggle vertical Add-on Bar'; // Toggle button name
    	var addonbar_v_togglebutton = true; // display toggle button for vertical toolbar (true) or not (false)
    	var addonbar_v_on_the_left = true; // display vertical toolbar on the left (true) or the right (false)
    	var style_addonbar_v = true; // apply default toolbar appearance/colors to vertical add-on bar
    	var addonbar_v_width = '30px'; // toolbar width
    	var compact_buttons = false; // compact button size (true) or default button size (false)
    
    	try {
    	 if(document.getElementById('toolbox_abv') == null && document.getElementById('addonbar_v') == null) {
    	  var toolbox_abv = document.createXULElement('toolbox');
    	  toolbox_abv.setAttribute('orient','horizontal');
    	  toolbox_abv.setAttribute('id','toolbox_abv');
    	  toolbox_abv.setAttribute('insertbefore','sidebar-box');
    	  
    	  var tb_addonbarv = document.createXULElement('toolbar');
    	  tb_addonbarv.setAttribute('id','addonbar_v');
    	  tb_addonbarv.setAttribute('customizable','true');
    	  tb_addonbarv.setAttribute('class','toolbar-primary chromeclass-toolbar browser-toolbar customization-target');
    	  tb_addonbarv.setAttribute('mode','icons');
    	  tb_addonbarv.setAttribute('iconsize','small');
    	  tb_addonbarv.setAttribute('toolboxid','navigator-toolbox');
    	  tb_addonbarv.setAttribute('orient','vertical');
    	  tb_addonbarv.setAttribute('flex','1');
    	  tb_addonbarv.setAttribute('context','toolbar-context-menu');
    	  tb_addonbarv.setAttribute('toolbarname', addonbar_v_label);
    	  tb_addonbarv.setAttribute('label', addonbar_v_label);
    	  tb_addonbarv.setAttribute('lockiconsize','true');
    	  tb_addonbarv.setAttribute('defaultset','spring');
    	  
    	  toolbox_abv.appendChild(tb_addonbarv);
    	  
    	  CustomizableUI.registerArea('addonbar_v', {legacy: true});
    	  CustomizableUI.registerToolbarNode(tb_addonbarv);
    	  
    	  if(addonbar_v_on_the_left) {
    	    document.getElementById('browser').insertBefore(toolbox_abv,document.getElementById('browser').firstChild);
    	  }
    	  else {
    		document.getElementById('browser').appendChild(toolbox_abv);
    	  }
    	  
      	  var observer = new MutationObserver(function(mutations) {
    		mutations.forEach(function(mutation) {
    		  try {
    			if(document.querySelector('#main-window').getAttribute('customizing')) {
    			  document.querySelector('#addonbar_v').setAttribute('orient','horizontal');
    			  document.querySelector('#navigator-toolbox').appendChild(document.querySelector('#addonbar_v'));
    			}
    			else  {
    			  document.querySelector('#addonbar_v').setAttribute('orient','vertical');
    			  document.querySelector('#toolbox_abv').appendChild(document.querySelector('#addonbar_v'));
    
    			}
    		  } catch(e){}
    		});    
    	  });
    	
    	  observer.observe(document.querySelector('#main-window'), { attributes: true, attributeFilter: ['customizing'] });
    	  
    	  try {
    		Services.prefs.getDefaultBranch('browser.vaddonbar.').setBoolPref('enabled',true);
    		setToolbarVisibility(document.getElementById('addonbar_v'), Services.prefs.getBranch('browser.vaddonbar.').getBoolPref('enabled'));
    		setToolbarVisibility(document.getElementById('toolbox_abv'), Services.prefs.getBranch('browser.vaddonbar.').getBoolPref('enabled'));
    	  } catch(e) {}
    	  
    	  if(addonbar_v_togglebutton) {
    	  
    		CustomizableUI.createWidget({
    			id: 'togglebutton_addonbar_v', // button id
    			defaultArea: CustomizableUI.AREA_NAVBAR,
    			removable: true,
    			label: button_label, // button title
    			tooltiptext: button_label, // tooltip title
    			onClick: function(event) {
    			  if(event.button==0) {
    			    var windows = Services.wm.getEnumerator(null);
    				while (windows.hasMoreElements()) {
    				  var win = windows.getNext();
    				  
    				  var vAddonBar = win.document.getElementById('addonbar_v');
    				  setToolbarVisibility(vAddonBar, vAddonBar.collapsed);
    					  
    				  var vAddonBarBox = win.document.getElementById('toolbox_abv');
    				  setToolbarVisibility(vAddonBarBox, vAddonBarBox.collapsed);
    					  
    				  Services.prefs.getBranch('browser.vaddonbar.').setBoolPref('enabled',!vAddonBar.collapsed);
    				  
    				  if(!vAddonBar.collapsed)
    					win.document.querySelector('#togglebutton_addonbar_v').setAttribute('checked','true');
    				  else win.document.querySelector('#togglebutton_addonbar_v').removeAttribute('checked');
    				}
    			  }
    			},
    			onCreated: function(button) {
    			  if(Services.prefs.getBranch('browser.vaddonbar.').getBoolPref('enabled'))
    			    button.setAttribute('checked','true');
    			  return button;
    			}
    				
    		});
    	  }
    
    	  // Press 'Ctr + Alt + /' on Windows/Linux and 'Cmd + Alt + /' on macOS to toggle vertical add-on bar
    	  var key = document.createXULElement('key');
    	  key.id = 'key_toggleVAddonBar';
    	  key.setAttribute('key', '/');
    	  key.setAttribute('modifiers', 'accel,alt');
    	  key.setAttribute('oncommand',`
    		var windows = Services.wm.getEnumerator(null);
    		while (windows.hasMoreElements()) {
    		  var win = windows.getNext();
    		  var vAddonBar = win.document.getElementById('addonbar_v');
    		  setToolbarVisibility(vAddonBar, vAddonBar.collapsed);
    		  var vAddonBarBox = win.document.getElementById('toolbox_abv');
    		  setToolbarVisibility(vAddonBarBox, vAddonBarBox.collapsed);
    		  Services.prefs.getBranch('browser.vaddonbar.').setBoolPref('enabled',!vAddonBar.collapsed);
    		  if(!vAddonBar.collapsed)
    			win.document.querySelector('#togglebutton_addonbar_v').setAttribute('checked','true');
    		  else win.document.querySelector('#togglebutton_addonbar_v').removeAttribute('checked');
    		}
    	  `);
    	  document.getElementById('mainKeyset').appendChild(key);
    	  
    	 }
    	} catch(e) {}
    	
    	// style toolbar & toggle button
    	var addonbar_v_style = '';
    	var togglebutton_addonbar_v_style = '';
    	
    	if(style_addonbar_v) {
    	  var end_border =`
    		#addonbar_v {
    			border-inline-end: 1px solid var(--sidebar-border-color,rgba(0,0,0,0.1)) !important;
    		}
    	  `;
    		  
    	  if(!addonbar_v_on_the_left) {
    		end_border =`
    		  #addonbar_v {
    			border-inline-start: 1px solid var(--sidebar-border-color,rgba(0,0,0,0.1)) !important;
    		  }
    		`;
    	  }
    
    	  addonbar_v_style =`
    		#addonbar_v {
    		  appearance: none !important;
    		  background-color: var(--toolbar-bgcolor);
    		  background-image: var(--toolbar-bgimage);
    		  background-clip: padding-box;
    		  color: var(--toolbar-color, inherit);
    		}
    		#main-window:-moz-lwtheme #addonbar_v {
    		  background: var(--lwt-accent-color) !important;
    		}
    		#main-window[lwtheme-image='true']:-moz-lwtheme #addonbar_v {
    		  background: var(--lwt-header-image) !important;
    		  background-position: 0vw 50vh !important;
    		}
    		#main-window:not([customizing]) #toolbox_abv:not([collapsed='true']),
    		#main-window:not([customizing]) #addonbar_v:not([collapsed='true']) {
    		  min-width: `+addonbar_v_width+`;
    		  width: `+addonbar_v_width+`;
    		  max-width: `+addonbar_v_width+`;
    		}
    		#main-window[chromehidden='menubar toolbar location directories status extrachrome '] #toolbox_abv:not([collapsed='true']),
    		#main-window[chromehidden='menubar toolbar location directories status extrachrome '] #addonbar_v:not([collapsed='true']),
    		#main-window[sizemode='fullscreen'] #toolbox_abv:not([collapsed='true']),
    		#main-window[sizemode='fullscreen'] #addonbar_v:not([collapsed='true']) {
    		  min-width: 0px;
    		  width: 0px;
    		  max-width: 0px;
    		}
    		#main-window[customizing] #addonbar_v {
    		  outline: 1px dashed !important;
    		  outline-offset: -2px !important;
    		}
    		#addonbar_v:-moz-lwtheme {
    		  background: var(--lwt-header-image) !important;
    		  background-position: 100vw 50vh !important;
    		}
    		#addonbar_v toolbarbutton,
    		#addonbar_v toolbar .toolbarbutton-1 {
    		  padding: 0 !important;
    		}
    		`+end_border+`
    	  `;
    	}
    	
    	var addonbar_right = '';
    	
    	if(!addonbar_v_on_the_left) {
    		addonbar_right =`
    		  #toolbox_abv{
    			order: 10 !important;
    		  }
    		`;
    	}
    	
    	if(addonbar_v_togglebutton) {
    	  togglebutton_addonbar_v_style =`
    		#togglebutton_addonbar_v .toolbarbutton-icon { \
    		  list-style-image: url('chrome://browser/skin/sidebars.svg');
    		  fill: green; 
    		}
    		/*#togglebutton_addonbar_v .toolbarbutton-icon {
    		  list-style-image: url('chrome://browser/skin/forward.svg');
    		  fill: red;
    		}
    		#togglebutton_addonbar_v[checked] .toolbarbutton-icon {
    		  fill: green;
    		}
    		#togglebutton_addonbar_v {
    		  background: url('chrome://browser/skin/back.svg') no-repeat;
    		  background-size: 35% !important;
    		  background-position: 10% 70% !important;
    		}
    		#togglebutton_addonbar_v[checked] {
    		  transform: rotate(180deg) !important;
    		  background: url('chrome://browser/skin/back.svg') no-repeat;
    		  background-position: 10% 30% !important;
    		}*/
    	  `;
    	}
    	
    	var compact_buttons_code = '';
    	
    	if(compact_buttons)
    	  compact_buttons_code = `
    		#addonbar_v toolbarbutton .toolbarbutton-icon {
    		  padding: 0 !important;
    		  width: 16px !important;
    		  height: 16px !important;
    		}
    		#addonbar_v .toolbarbutton-badge-stack {
    		  padding: 0 !important;
    		  margin: 0 !important;
    		  width: 16px !important;
    		  min-width: 16px !important;
    		  height: 16px !important;
    		  min-height: 16px !important;
    		}
    		#addonbar_v toolbarbutton .toolbarbutton-badge {
    		  margin-top: 0px !important;
    		  font-size: 8px !important;
    		}
    	  `;
    	  
    	var uri = Services.io.newURI('data:text/css;charset=utf-8,' + encodeURIComponent(''+addonbar_v_style + togglebutton_addonbar_v_style + addonbar_right + compact_buttons_code), null, null);
    	  
    	var sss = Components.classes['@mozilla.org/content/style-sheet-service;1'].getService(Components.interfaces.nsIStyleSheetService);
    	sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
    	
      }
    
    }
    
    /* initialization delay workaround */
    document.addEventListener('DOMContentLoaded', AddonbarVertical.init(), false);
    /* Use the below code instead of the one above this line, if issues occur */
    /*
    setTimeout(function(){
      AddonbarVertical.init();
    },2000);
    */
    Alles anzeigen

    Hoffe, die funktioniert.
    Mfg.
    Endor

  • FF126: AnimationToggleButton.uc.js tuts nich mehr

    • Endor
    • 14. Mai 2024 um 20:27
    Zitat von milupo

    Außerdem interessiert es einen Nutzer vielleicht, was sich wirklich geändert hat

    Ja da hast Du absolut recht. :thumbup:

    harff182

    gerne, freut mich wenn es passt.
    Viele Grüße
    Endor

  • FF126: AnimationToggleButton.uc.js tuts nich mehr

    • Endor
    • 14. Mai 2024 um 20:13

    milupo siehe mein Script oben. ;)

  • FF126: AnimationToggleButton.uc.js tuts nich mehr

    • Endor
    • 14. Mai 2024 um 20:05

    Guten Abend harff182

    Bitte mal testen:

    Code
    // 	28_AnimationToggleButton.uc.js
    // 	v. 0.4.2
    //	211104:	BrokenHeart zuletzt in:
    //	https://www.camp-firefox.de/forum/thema/133649
    
    (function() {
    
       if (location != 'chrome://browser/content/browser.xhtml')
          return;
    
       try {
    
          CustomizableUI.createWidget({
    
             id: 'animation-button',
             type: 'custom',
             defaultArea: CustomizableUI.AREA_NAVBAR,
    
             onBuild: function(aDocument) {
    
                var button = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                var attributes = {
                   id: 'animation-button',
                   class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                   removable: 'true',
                   label: 'Animation',
                   tooltiptext: 'Klick li: Gif ∞\nKlick mi: Gif 1x \nKlick re: Gif aus',
                   oncontextmenu: 'return false'
                };
                for (var a in attributes)
                   button.setAttribute(a, attributes[a]);
                var animmode = Services.prefs.getCharPref('image.animation_mode');
                button.setAttribute('anim', animmode);
                button.IsOnce = (animmode == 'once');
    
                function onClick() {
    
                   var button = document.getElementById('animation-button');
                   function setPref(value) {
                      Services.prefs.setCharPref('image.animation_mode', value);
                   };
                   function getPref() {
                      return Services.prefs.getCharPref('image.animation_mode');
                   };
                   function setIsOnce(value) {
                      var windows = Services.wm.getEnumerator('navigator:browser');
                      while (windows.hasMoreElements()) {
                         windows.getNext().document.getElementById('animation-button').IsOnce = value;
                      };
                   };
    
                   switch (event.button) {
    
                      case 0:
                         var animmode = getPref();
                         setPref('normal');
                         if (button.IsOnce) {
                            BrowserCommands.reloadSkipCache();
                            setIsOnce(false);
                         } else {
                            if (animmode == 'normal')
                               BrowserCommands.reloadSkipCache()
                            else
                               BrowserCommands.reload();
                         };
                         break;
    
                      case 1:
                         setPref('once');
                         BrowserCommands.reloadSkipCache();
                         setIsOnce(true);
                         break;
    
                      case 2:
                         setPref('none');
                         event.preventDefault();
                         event.stopPropagation();    
                         BrowserCommands.reload();
                         break;
                   };
    
                   var windows = Services.wm.getEnumerator('navigator:browser');
                   while (windows.hasMoreElements()) {
                      windows.getNext().document.getElementById('animation-button').setAttribute('anim', getPref());
                   };
                };
    
                button.setAttribute('onclick', '(' + onClick.toString() + ')();');
                return button;
             }
          });
    
       } catch(e) { };
    
       var css =
          '#animation-button[anim="normal"] {list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAoCAYAAAC4h3lxAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH4wkNFRE2JfCuMgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAS6SURBVFjD7ZnNTxtHFMDfm7ENtbGxoV7b2A4gATZ2VEybCyAB5d4qUntLBZcI5dQ/oKcee4l6qBRFgTYqaUqjSFS5tVUrIEJCjQqYDxmIAwUMCV+GxMYfLDs7PQQQjhcKxY03Up60WntmZ/b93pdmdhAAoK2tTQCA9yRJsgEAgoqEUvoCEWc7Ojoet7e3Z/Vjc3Ozh1J6GRE5qFdQluXxgYGBXzjPVFODiB8dKM8Z13JQFwchRAIEjojvNzU1TQHAcgYApZQAAGxXbFeEykKdnHOqJgB30v1H+Xj5b4go6XQ6dxbAwY+UMVWyq92laoudOI9XHg2lzs5OGg6HWX9//0sPwRsmc3Nz1xHxbltbW22GB5REz/TbzhfOP43bxiWOnMRKYhXLpuWGXbJryGdhQkQPANxsaWm5ciyARbRs+Cf8t3QJXeywLWIJWy3WyUnf5NWEJmHME8D2/t2AiJ8dG0LV4ep7R5U/9Mq2frU6Uv1zvsxvsVi+OkwIRJsigDVtjRRtFkWOm6RkoWTasGeI/0cdzlWnrVarCADssMwqPaRj2ZbPLM7ACliBdNaXl+2UhS+FL32t4Zp4rjyiCCBS0XSipWSgIhU1Z1I+WTbtGfPcNj01rdXP1d/IFYQiwGbhpjNpSTqPG/T8wvOaHe3OqZPYkXTM1vxV8yPKyAAAjCvGrcBcoCsXEEQ5SDkJe8KfSoVS0at9aWP63XB5+PKplU845r0j3h7CiXi03bRiWgvMB7oop4nzABwbBtGCqDP4QfCaa8v1sChaFOGE03hp/MKSZenDJE2aTjO5PWV/7B3zfo8yKuaLadm0Vo/1N4OVwWsSSoacAgAAxDQxa0gIfQLC2Se2p+xPvCPeH5DhicluipjW66CuO1gZvMqQGXISQucVW9K26B313iaM7J7m+eJI8dPAQqCLcpp8HQAn1nFb2vakdqy2m0jkTGW2eKn4WWAxcIsCTf1vAAgoX1y92ONOuEeV+oW0MO8d8d4hUmbCnhpisfhZ3d9131Kg6ZwDIKDsX/X3CLNCqGqk6r57xz2RoXxKWPKN+r6j0ulfriTmJXOkJlrzIKcACCj71/x3hFlhBgAAOcpVo1W9roRrEgBA2BWe1I7VdpE9speT5SajYk6q0IHyvjVfrzAjhDLaOcrVI9W9er8+4ph1PKJ7VIQ8yL8ByL51X69txjahCMeRuaZcg3ndM59Ubfwb/l7btG1SzTu0Yz3g2/Dds4WULa+qrxaK65eUY8oesgffhD2yIgDhhJ9346GGHIC3APlK4rQm/c5mzaYzbx+zDHH7uQCiumhV1BH9/G0IvaYQIgAgG7eMa85C54Taqo95xzx75G/WEl3DGItRSouMK8YVz4rnrlotzTlHURQXsks+5/dlWWZqDhPOOTLGfh8aGlrP8sDg4OBGY2PjjYKCglqNRmPknBOVKb+TTqcXh4eH15UXlK8c2TQ0NLj0ev2XL8fySDwe75YkSTV5YTabKwkh3wAAl2X5YRYAIkJra+uvhJDSfQuo6tBj/zhMBgBgjF0nCi4DrVb7BQCI+wOYmq4D5QHgkVar/SnLAwdeaG5udlNKPwaASs65ao5eCSExSZLGS0tLH/T19fF/AGeo9vFEBn4KAAAAAElFTkSuQmCC)} ' +
          '#animation-button[anim="once"] {list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAoCAYAAAC4h3lxAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH4wkNFQw22pzCLgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAATOSURBVFjD7VlvTFtVFD/3vtcWWlpAUkrbDazQkWkilfhl+zAahARNZjIT9QMzkS8EPm+wADMxWdRhsk842cYgbsbExWRqBkMGCwrbPpBsisi/V9rCZsBoHGwPKO277x0/sJqxviKVah/Gk7y89+7Nve/8zvmdc++5jwAAVFRUFCPia4wxGyIS0JDwPC9SSr8tLS0daG1tjeknXq/XSyn9EAAoaFcIIn4RDAZPBoPBjQAB4J2o8owhRdSW5jxPkBBAAHjT5XL1AMDYhn5KaSYAwMGDa7o3XheeB9AWgqkpx/x771sXCCEyIr4YAyD6UPhM2GQyMc1xx+FYsQBYF6JUqq2t5Xw+nzw4OAigcd6rit/vP0UI+ay8vHzvBg+oyeqqMXT7tm1+YiJNIgRYScmq2eP5xWkwhPkUYuAIIcUAcKasrKw6riL375sjJ064/HN3+XC07Zu+9LCnxBw6csRfZDKFUgVi8dHdRAg5HJdC5zryA48rH5UfRvUrly4VBFJl/uzs7JN/5lZCbKoA5heeEkdGDCvxJvnyK+OyKKb/zYgn20pzVqs1AgBy9F0VwFqI3/QjOh0ooRCf8Io9Pu4Ya2t77nvG9OGkrRNqjQYD21Q5SQKalsYSsuTkpHO05bgtQilQjtszUVsrPMvzEcN2AVD13LuY4fFETPEGvfJyyGixbD2Ip6acPzY15zJK1783cF2vdHS4p5PhCVUAhCCpq7tXYMuV9U/2FRUyQ3X13YIEVtKJ5hZbhNKNTu0fMEidne5pxvSRpFMIACDX+iC9tTVQeOuW7eexnwwSAaJ4PCH9/v0Lu4zG1fStTC4IzvGmZluIEFClZN81g0Q592TN28Jenpf0SQUAAGCxiMaqKnFPVVXiE/tmHJONx3JDlMKm8dTba2AE3EJNja+Y4yRdUii0XfHN2H0NDXkipWRLmepqb1r4kwvuKVnWSSkH4A84phsa7EuUApfIuJ6etMiFi4mDSAgAIsHuHve0IOTdV+sPBOy+o0fzxGi2SVS6u9MiFz8tEmSZZ/8AAIJXr7qFri7zcstx+6zgsy1tVD4v0NBoX4wXsFuVK1fS127cKJhLKgBEgr29Rb7OrowVAABZJtjS4gzMzNgeAADMztpnGo85fkdMjDZxd8EhiknJQlHl+/oK/R3nzeLj7bIM2NTsCNTXZRhPf2wREVNTW/B/RZtr/YX+cx2WB2q9skyUj05nLgNAyk4yNrVaf3+h/+xZy0MtV2hxPdA/UORvP6NueS2Jqgfm5qxL7e2WpZ1QI9M43CawQ2THnUr85wCoBrHZLMFbh0MpA5efv0a3BcBqXcw8dGjxhf8p9C9RiAAA3rmTvrJrt21RY2e7MD1t+e2x15gamlcUJUgpfXpoWC8NDTsDGja2IknSTTUKNSqK8lDjTEFZlj+oq6ubjd2tIUJlZWUmY+wlnuddGoyLX8Ph8HfDw8OziAj19fW8IAg3AYBTFGWY4BO/ZPbt27fLaDS+CwCIiPdEUTzPGNNMZGRlZbkopW0AgIqiDMUAIISA1+vto5TmrNcDyGnJHYQQBABlfcsjn6KxBQyCTqdrBoDIowGylq6o8gAwotPpPo/xQNQLBw4c2M1x3KsA4NLSr1dK6UPG2GhOTs7Xly9fxj8A10cIqTl/HS8AAAAASUVORK5CYII=)} ' +
          '#animation-button[anim="none"] {list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAoCAYAAAC4h3lxAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH4wkNFRMXW6/c7gAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAATFSURBVFjD7ZlfTFtVHMd/55z+Adrbv7fg5E9L/4hLpg/GkABJwcb4plnilhg18OBC9rQnn3wyZosQJXswIwzQRRBxWcbcMnSaEf6EhMiDjj9hQssmVMV20FG4QHu59x4fRgnQWwTajUviL2nannPPvb/P7/f9/dLTgwAAfD5fLgC8LAhCHgAgUJARQqIIocmampqp6urqpHnk9XpLCCEnEUIUlGtIkqSRvr6+O5Rud1OFEHoz4TxPqRqosjjUGAsIgCKEXqmoqBgHgD+3ARBCMADAO9Goo/Thw1oKQJQEEGbZnvqCgp8RQoJGoylMAkh8eD4Ws2QLAlGadiyrq8VbpVRbW0v8fr/Y29sLAAAYjphNT083IIQ6fD7f8W0ZkLN1jebxDMv+EtDrZwml2M1xjsL5+TLV+rruMBsTQqgEAJoqKyvfSwmwkpPz6LLH0+xXq5c2B41Gf6nFMvZuIHBGG48zhwTweONdhxB6P6WEbtntV7c5v2HD2dn/DBYW3jis8JvN5rrNgkAoTxYgyjDBAZ0umOomHSbT/ZhWu3xAH9Lq0zabjQcAMfFdFoCXifxW0wKIcZVK2O/DQ2az/3ZJyUWJkOVMZUQWQL2+btgtUjwA0QiCaj8Pmjeb79c5nVe6GSb0o8fTmCkIWQATx+WXrq7mp1p0Ohp9IXsfRbxgNk9eKC7+NoaQCABwW6+P/OB2t9AMQMgXMaX41OzsqQJB0O+ceikeZ6uCwZN7jrzJ9OCC09kWw5jfOt7NMKE7bneLhPFKOgApZcBwXP6Hk5Nn/TbbwIROF9RQSl7kuCJXOPyamucNe7l5xGSaqnO5vl5DSLZebjFMiHg8Ta8HAmexKOoyCgAAoF1bs52YnX37xEGatdEY+NTp/GYlhfMJu8EwYepytb4RCJxBkqTLjITStAWjcabe5brCYRzfy/XfGwx/33W7WyjGq88CYNc+vmg0Bj53uVqjGO+rzXYZDHM9Hk8zxXjtaQJIvzkcbSGW/VXWeYPhQb3T2b64o2D3atcZZq7H5fqSYhx7GgDSPYejrZllJ87b7ddCVuvoNs0bDLOfud1fLRISS0d+143G4FR+/s1MA0gjDkf7ZZb9HQBAQEg673B0hq3WMQCAJYMh0OB2t0QwXs9EDcUJ4TPShTadt9s7m1h2YuuggJD0icPReS4rK9iemzu8cEDZpGv/BSCN2e2dTTbbqNykiJB48dix/sPc4OwmITput3c22mxjSt6hpczAeFHR1UspIq8kk81AxGwev5Sbe+8o7JFlAaQn/xPRIwtwlOzIA8gWcRbPZ38QieQfllN5KyvPpQWg5zj3qxx37n8JPSMJYQCQJvX6kNliGVVa95ljmMmtv2CSAERRXCKE6Lt1ur+6nc4OpUaaUop4nv8jSUKU0muSJIlKlgmlFImieHdwcDCclIH+/v5H5eXljVqt9rhKpWIopVhhznOxWGxmaGgoLDePdh7ZlJWVFeTk5Hz8ZC0NLi8vtwqCoJi6MJlMxRjjLwCASpI0kASAEIKqqqqfMMbWjQgo6tBj4zhMAgAQRbEBy6QM1Gr1RwDAbywQlfRKOA8Aw2q1+rukDCSy4PV6CwkhbwFAMaVUMUevGOMlQRBGrFbrza6uLvovNfXp2AJLOUkAAAAASUVORK5CYII=)}';
       var stylesheet = document.createProcessingInstruction('xml-stylesheet', 'type="text/css" href="data:text/css;utf-8,' + encodeURIComponent(css) + '"');
       document.insertBefore(stylesheet, document.documentElement);
    
    })();
    Alles anzeigen

    Mfg.
    Endor

  • Der Glückwunsch-Thread

    • Endor
    • 9. Mai 2024 um 17:06

    Goldsunshine auch von mir alles alles Gute zum Geburtstag.
    Vor allem viel Gesundheit!

    Mfg.
    Endor

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

    • Endor
    • 29. April 2024 um 16:47

    grisu2099

    Danke für den Hinweis. Habe ich gleich oben entfernt.
    Mfg.
    Endor

  • Was hört Ihr gerade?

    • Endor
    • 29. April 2024 um 16:38

    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

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

    • Endor
    • 29. April 2024 um 16:34

    Hallo Horstmann
    Vielen Dank, das funktioniert prima.
    :thumbup::thumbup:

    Mira_Belle du hast ja für dich schon eine Lösung gefunden.
    Für alle Fälle hier noch meine Version mit der Änderung von Horstmann.

    CSS
    // ==UserScript==
    // @name           moveReloadIntoUrl.uc.js
    // @description    Neuladen Schaltfläche in Adressleiste verschieben
    // @compatibility  Firefox 57
    // @author         Ryan, GOLF-AT
    // @include        main
    // @shutdown       window.moveReloadIntoURL.unload();
    // @homepageURL    https://github.com/benzBrake/FirefoxCustomize
    // @version        1.2.4
    // @note           1.2.4 Bug 1880914  Move Browser* helper functions used from global menubar and similar commands to a single object in a separate file, loaded as-needed and Bug 1820534 - Move front-end to modern flexbox
    // @note           1.2.3 Änderung wird in neuen Fenstern nicht wirksam und kann nicht verwendet werden, wenn Hot-Swapping stattfindet.
    // @note           1.2.2 Kompatibilität für Firefox 103
    // @note           1.2.0 Hot-Swap-fähig, kompatibel mit Nachtmodus und Bilder wurden ins Script integriert
    // @note           1.1 20220424 Fehler behoben, und Firefox 100 Kompatibel
    // @note           1.0 20171104
    // ==/UserScript==
    (function () {
        let { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components;
    
        const isGerman = (Services.locale.appLocaleAsBCP47 || Services.locale.getAppLocaleAsBCP47()).includes("de");
    
        if (window.moveReloadIntoURL) {
            window.moveReloadIntoURL.unload();
            delete window.moveReloadIntoURL;
        }
    
        window.moveReloadIntoURL = {
            handleEvent: function (aEvent) {
                if (aEvent.type === "MoveReloadIntoUrlUnload") {
                    let window = aEvent.originalTarget,
                        doc = window.document;
                    let RELOADBTN = CustomizableUI.getWidget("reload-button").forWindow(window).node;
                    if (RELOADBTN)
                        RELOADBTN.removeEventListener('DOMAttrModified', this.reloadBtnAttr);
                    let BTN = doc.getElementById("new-stop-reload-button");
                    if (BTN)
                        BTN.parentNode.removeChild(BTN);
                    if (this.STYLE) {
                        this.sss.unregisterSheet(this.STYLE.url, this.STYLE.type);
                    }
                    window.removeEventListener('MoveReloadIntoUrlUnload', this);
                    if (window.moveReloadIntoURL)
                        delete window.moveReloadIntoURL;
                }
            },
            init: function () {
                if (window.moveReloadIntoURL) {
                    this.sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
                    this.STYLE = {
                        url: Services.io.newURI('data:text/css;charset=UTF-8,' + encodeURIComponent(`
                    @-moz-document url-prefix('chrome://browser/content/browser.x') {
                        #stop-reload-button {
                            display: none;
                        }
                        #new-stop-reload-button {
                            display: flex !important;
                            order: 9999;                 
                        }
                        #new-stop-reload-button .urlbar-icon {
                            -moz-context-properties: fill, fill-opacity !important;
                            fill: currentColor !important;
                        }
                    }
                  `)),
                        type: this.sss.AGENT_SHEET
                    };
                    this.sss.loadAndRegisterSheet(this.STYLE.url, this.STYLE.type);
                }
                let PABTN = CustomizableUI.getWidget("pageActionButton").forWindow(window).node;
                let RELOADBTN = CustomizableUI.getWidget("reload-button").forWindow(window).node;
                let BTN = $C(document, 'hbox', {
                    id: "new-stop-reload-button",
                    class: "urlbar-page-action urlbar-addon-page-action",
                    "tooltiptext": isGerman ? 'Linksklick: Seite neuladen\r\nRechtsklick: Neu laden ohne Cache' : 'Left click: refresh page\nRight click: force refresh page',
                    style: "list-style-image: url('data:image/svg+xml;base64,PCEtLSBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCiAgIC0gTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcwogICAtIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9IiMwMDhjMDAiIGZpbGwtb3BhY2l0eT0iMS4wIiBzdHJva2U9IiMwMDhjMDAiIHN0cm9rZS13aWR0aD0iMSI+CiAgPHBhdGggZD0iTTEwLjcwNyA2IDE0LjcgNmwuMy0uMyAwLTMuOTkzYS41LjUgMCAwIDAtLjg1NC0uMzU0bC0xLjQ1OSAxLjQ1OUE2Ljk1IDYuOTUgMCAwIDAgOCAxQzQuMTQxIDEgMSA0LjE0MSAxIDhzMy4xNDEgNyA3IDdhNi45NyA2Ljk3IDAgMCAwIDYuOTY4LTYuMzIyLjYyNi42MjYgMCAwIDAtLjU2Mi0uNjgyLjYzNS42MzUgMCAwIDAtLjY4Mi41NjJBNS43MjYgNS43MjYgMCAwIDEgOCAxMy43NWMtMy4xNzEgMC01Ljc1LTIuNTc5LTUuNzUtNS43NVM0LjgyOSAyLjI1IDggMi4yNWE1LjcxIDUuNzEgMCAwIDEgMy44MDUgMS40NDVsLTEuNDUxIDEuNDUxYS41LjUgMCAwIDAgLjM1My44NTR6Ii8+Cjwvc3ZnPgo=",
                    onclick: function (e) {
                        let r = CustomizableUI.getWidget("reload-button").forWindow(window).node;
                        e.preventDefault();
                        if (r && r.getAttribute('displaystop'))
                            gBrowser.stop();
                        else
                            if (e.button == 2) {
                                gBrowser.reloadWithFlags(Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_CACHE)
                            } else {
                                if (gBrowser.selectedBrowser._userTypedValue) {
                                    e.target.ownerGlobal.openTrustedLinkIn(gBrowser.selectedBrowser._userTypedValue, 'current', {
                                        postData: null,
                                        triggeringPrincipal: gBrowser.selectedBrowser.contentPrincipal
                                    });
                                } else {
                                    gBrowser.reload();
                                }
                            }
                    }
                })
    
                BTN.appendChild($C(document, 'image', {
                    class: 'urlbar-icon',
                }));
    
                PABTN.after(BTN);
                RELOADBTN.addEventListener('DOMAttrModified', this.reloadBtnAttr);
                this.reloadBtnAttr();
    
                window.addEventListener('MoveReloadIntoUrlUnload', this)
            },
            unload: function () {
                let windows = Services.wm.getEnumerator('navigator:browser');
                while (windows.hasMoreElements()) {
                    let win = windows.getNext();
                    win.dispatchEvent(new CustomEvent("MoveReloadIntoUrlUnload"));
                }
            },
            reloadBtnAttr: function (e) {
                let doc = e ? e.target.ownerDocument : document;
                btn = doc.getElementById('new-stop-reload-button');
                if (btn && (!e || e.attrName == 'displaystop')) {
                    var newVal = e ? e.newValue : doc.getElementById(
                        "reload-button").getAttribute('displaystop');
                    if (newVal)
                        btn.style.listStyleImage = "url('data:image/svg+xml;base64,PCEtLSBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCiAgIC0gTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcwogICAtIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9IiNkOTAwMDAiIGZpbGwtb3BhY2l0eT0iMS4wIiBzdHJva2U9IiNkOTAwMDAiIHN0cm9rZS13aWR0aD0iMS41Ij4KICA8cGF0aCBkPSJtOS4xMDggNy43NzYgNC43MDktNC43MDlhLjYyNi42MjYgMCAwIDAtLjg4NC0uODg1TDguMjQ0IDYuODcxbC0uNDg4IDAtNC42ODktNC42ODhhLjYyNS42MjUgMCAxIDAtLjg4NC44ODVMNi44NyA3Ljc1NGwwIC40OTEtNC42ODcgNC42ODdhLjYyNi42MjYgMCAwIDAgLjg4NC44ODVMNy43NTQgOS4xM2wuNDkxIDAgNC42ODcgNC42ODdhLjYyNy42MjcgMCAwIDAgLjg4NSAwIC42MjYuNjI2IDAgMCAwIDAtLjg4NUw5LjEwOCA4LjIyM2wwLS40NDd6Ii8+Cjwvc3ZnPgo=')";
                    else
                        btn.style.listStyleImage = "url('data:image/svg+xml;base64,PCEtLSBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCiAgIC0gTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcwogICAtIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9IiMwMDhjMDAiIGZpbGwtb3BhY2l0eT0iMS4wIiBzdHJva2U9IiMwMDhjMDAiIHN0cm9rZS13aWR0aD0iMSI+CiAgPHBhdGggZD0iTTEwLjcwNyA2IDE0LjcgNmwuMy0uMyAwLTMuOTkzYS41LjUgMCAwIDAtLjg1NC0uMzU0bC0xLjQ1OSAxLjQ1OUE2Ljk1IDYuOTUgMCAwIDAgOCAxQzQuMTQxIDEgMSA0LjE0MSAxIDhzMy4xNDEgNyA3IDdhNi45NyA2Ljk3IDAgMCAwIDYuOTY4LTYuMzIyLjYyNi42MjYgMCAwIDAtLjU2Mi0uNjgyLjYzNS42MzUgMCAwIDAtLjY4Mi41NjJBNS43MjYgNS43MjYgMCAwIDEgOCAxMy43NWMtMy4xNzEgMC01Ljc1LTIuNTc5LTUuNzUtNS43NVM0LjgyOSAyLjI1IDggMi4yNWE1LjcxIDUuNzEgMCAwIDEgMy44MDUgMS40NDVsLTEuNDUxIDEuNDUxYS41LjUgMCAwIDAgLjM1My44NTR6Ii8+Cjwvc3ZnPgo=')";
                }
            },
        }
    
        function $C(aDoc, tag, attrs, skipAttrs) {
            let d = (aDoc || document);
            attrs = attrs || {};
            skipAttrs = skipAttrs || [];
            var el = "createXULElement" in d ? d.createXULElement(tag) : d.createElement(tag);
            return $A(el, attrs, skipAttrs);
        }
    
        function $A(el, obj, skipAttrs) {
            skipAttrs = skipAttrs || [];
            if (obj) Object.keys(obj).forEach(function (key) {
                if (!skipAttrs.includes(key)) {
                    if (typeof obj[key] === 'function') {
                        el.setAttribute(key, "(" + obj[key].toString() + ").call(this, event);");
                    } else {
                        el.setAttribute(key, obj[key]);
                    }
                }
            });
            return el;
        }
    
        "canLoadToolbarContentPromise" in PlacesUIUtils ? PlacesUIUtils.canLoadToolbarContentPromise.then(_ => moveReloadIntoURL.init()) : moveReloadIntoURL.init();
    })();
    Alles anzeigen

    Vielleicht kannst Du das ja noch brauchen.
    Viele Grüße
    Endor

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

    • Endor
    • 29. April 2024 um 11:13

    Mira_Belle

    Gerne. Freut mich wenn es passt. :)

    Mfg.
    Endor

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

    • Endor
    • 29. April 2024 um 10:55

    Hallo Mira_Belle .

    Der Autor hat das Script nochmals aktualisiert.
    Hier meine übersetzte Version.
    Habe die Farbe der Symbole wie gewünscht geändert.
    Neuladen grün, Stop rot. Fett habe ich aber nicht hinbekommen.
    Hier das neue Script:

    CSS
    // ==UserScript==
    // @name           moveReloadIntoUrl.uc.js
    // @description    Neuladen Schaltfläche in Adressleiste verschieben
    // @compatibility  Firefox 57
    // @author         Ryan, GOLF-AT
    // @include        main
    // @shutdown       window.moveReloadIntoURL.unload();
    // @homepageURL    https://github.com/benzBrake/FirefoxCustomize
    // @version        1.2.4
    // @note           1.2.4 Bug 1880914  Move Browser* helper functions used from global menubar and similar commands to a single object in a separate file, loaded as-needed and Bug 1820534 - Move front-end to modern flexbox
    // @note           1.2.3 Änderung wird in neuen Fenstern nicht wirksam und kann nicht verwendet werden, wenn Hot-Swapping stattfindet.
    // @note           1.2.2 Kompatibilität für Firefox 103
    // @note           1.2.0 Hot-Swap-fähig, kompatibel mit Nachtmodus und Bilder wurden ins Script integriert
    // @note           1.1 20220424 Fehler behoben, und Firefox 100 Kompatibel
    // @note           1.0 20171104
    // ==/UserScript==
    (function () {
        let { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components;
    
        const isGerman = (Services.locale.appLocaleAsBCP47 || Services.locale.getAppLocaleAsBCP47()).includes("de");
    
        if (window.moveReloadIntoURL) {
            window.moveReloadIntoURL.unload();
            delete window.moveReloadIntoURL;
        }
    
        window.moveReloadIntoURL = {
            handleEvent: function (aEvent) {
                if (aEvent.type === "MoveReloadIntoUrlUnload") {
                    let window = aEvent.originalTarget,
                        doc = window.document;
                    let RELOADBTN = CustomizableUI.getWidget("reload-button").forWindow(window).node;
                    if (RELOADBTN)
                        RELOADBTN.removeEventListener('DOMAttrModified', this.reloadBtnAttr);
                    let BTN = doc.getElementById("new-stop-reload-button");
                    if (BTN)
                        BTN.parentNode.removeChild(BTN);
                    if (this.STYLE) {
                        this.sss.unregisterSheet(this.STYLE.url, this.STYLE.type);
                    }
                    window.removeEventListener('MoveReloadIntoUrlUnload', this);
                    if (window.moveReloadIntoURL)
                        delete window.moveReloadIntoURL;
                }
            },
            init: function () {
                if (window.moveReloadIntoURL) {
                    this.sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
                    this.STYLE = {
                        url: Services.io.newURI('data:text/css;charset=UTF-8,' + encodeURIComponent(`
                    @-moz-document url-prefix('chrome://browser/content/browser.x') {
                        #stop-reload-button {
                            display: none;
                        }
                        #new-stop-reload-button {
                            display: flex !important;
                            display: -moz-box !important;
                            order: 9999;
                            -moz-box-ordinal-group: 9999;
                        }
                        #new-stop-reload-button .urlbar-icon {
                            -moz-context-properties: fill, fill-opacity !important;
                            fill: currentColor !important;
                        }
                    }
                  `)),
                        type: this.sss.AGENT_SHEET
                    };
                    this.sss.loadAndRegisterSheet(this.STYLE.url, this.STYLE.type);
                }
                let PABTN = CustomizableUI.getWidget("pageActionButton").forWindow(window).node;
                let RELOADBTN = CustomizableUI.getWidget("reload-button").forWindow(window).node;
                let BTN = $C(document, 'hbox', {
                    id: "new-stop-reload-button",
                    class: "urlbar-page-action urlbar-addon-page-action",
                    "tooltiptext": isGerman ? 'Linksklick: Seite neuladen\r\nRechtsklick: Neu laden ohne Cache' : 'Left click: refresh page\nRight click: force refresh page',
                    style: "list-style-image: url('data:image/svg+xml;base64,PCEtLSBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCiAgIC0gTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcwogICAtIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9IiMwMDhjMDAiIGZpbGwtb3BhY2l0eT0iMS4wIj4KICA8cGF0aCBkPSJNMTAuNzA3IDYgMTQuNyA2bC4zLS4zIDAtMy45OTNhLjUuNSAwIDAgMC0uODU0LS4zNTRsLTEuNDU5IDEuNDU5QTYuOTUgNi45NSAwIDAgMCA4IDFDNC4xNDEgMSAxIDQuMTQxIDEgOHMzLjE0MSA3IDcgN2E2Ljk3IDYuOTcgMCAwIDAgNi45NjgtNi4zMjIuNjI2LjYyNiAwIDAgMC0uNTYyLS42ODIuNjM1LjYzNSAwIDAgMC0uNjgyLjU2MkE1LjcyNiA1LjcyNiAwIDAgMSA4IDEzLjc1Yy0zLjE3MSAwLTUuNzUtMi41NzktNS43NS01Ljc1UzQuODI5IDIuMjUgOCAyLjI1YTUuNzEgNS43MSAwIDAgMSAzLjgwNSAxLjQ0NWwtMS40NTEgMS40NTFhLjUuNSAwIDAgMCAuMzUzLjg1NHoiLz4KPC9zdmc+Cg==",
                    onclick: function (e) {
                        let r = CustomizableUI.getWidget("reload-button").forWindow(window).node;
                        e.preventDefault();
                        if (r && r.getAttribute('displaystop'))
                            gBrowser.stop();
                        else
                            if (e.button == 2) {
                                gBrowser.reloadWithFlags(Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_CACHE)
                            } else {
                                if (gBrowser.selectedBrowser._userTypedValue) {
                                    e.target.ownerGlobal.openTrustedLinkIn(gBrowser.selectedBrowser._userTypedValue, 'current', {
                                        postData: null,
                                        triggeringPrincipal: gBrowser.selectedBrowser.contentPrincipal
                                    });
                                } else {
                                    gBrowser.reload();
                                }
                            }
                    }
                })
    
                BTN.appendChild($C(document, 'image', {
                    class: 'urlbar-icon',
                }));
    
                PABTN.after(BTN);
                RELOADBTN.addEventListener('DOMAttrModified', this.reloadBtnAttr);
                this.reloadBtnAttr();
    
                window.addEventListener('MoveReloadIntoUrlUnload', this)
            },
            unload: function () {
                let windows = Services.wm.getEnumerator('navigator:browser');
                while (windows.hasMoreElements()) {
                    let win = windows.getNext();
                    win.dispatchEvent(new CustomEvent("MoveReloadIntoUrlUnload"));
                }
            },
            reloadBtnAttr: function (e) {
                let doc = e ? e.target.ownerDocument : document;
                btn = doc.getElementById('new-stop-reload-button');
                if (btn && (!e || e.attrName == 'displaystop')) {
                    var newVal = e ? e.newValue : doc.getElementById(
                        "reload-button").getAttribute('displaystop');
                    if (newVal)
                        btn.style.listStyleImage = "url('data:image/svg+xml;base64,PCEtLSBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCiAgIC0gTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcwogICAtIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9IiNkOTAwMDAiIGZpbGwtb3BhY2l0eT0iMS4wIj4KICA8cGF0aCBkPSJtOS4xMDggNy43NzYgNC43MDktNC43MDlhLjYyNi42MjYgMCAwIDAtLjg4NC0uODg1TDguMjQ0IDYuODcxbC0uNDg4IDAtNC42ODktNC42ODhhLjYyNS42MjUgMCAxIDAtLjg4NC44ODVMNi44NyA3Ljc1NGwwIC40OTEtNC42ODcgNC42ODdhLjYyNi42MjYgMCAwIDAgLjg4NC44ODVMNy43NTQgOS4xM2wuNDkxIDAgNC42ODcgNC42ODdhLjYyNy42MjcgMCAwIDAgLjg4NSAwIC42MjYuNjI2IDAgMCAwIDAtLjg4NUw5LjEwOCA4LjIyM2wwLS40NDd6Ii8+Cjwvc3ZnPgo=')";
                    else
                        btn.style.listStyleImage = "url('data:image/svg+xml;base64,PCEtLSBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCiAgIC0gTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcwogICAtIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9IiMwMDhjMDAiIGZpbGwtb3BhY2l0eT0iMS4wIj4KICA8cGF0aCBkPSJNMTAuNzA3IDYgMTQuNyA2bC4zLS4zIDAtMy45OTNhLjUuNSAwIDAgMC0uODU0LS4zNTRsLTEuNDU5IDEuNDU5QTYuOTUgNi45NSAwIDAgMCA4IDFDNC4xNDEgMSAxIDQuMTQxIDEgOHMzLjE0MSA3IDcgN2E2Ljk3IDYuOTcgMCAwIDAgNi45NjgtNi4zMjIuNjI2LjYyNiAwIDAgMC0uNTYyLS42ODIuNjM1LjYzNSAwIDAgMC0uNjgyLjU2MkE1LjcyNiA1LjcyNiAwIDAgMSA4IDEzLjc1Yy0zLjE3MSAwLTUuNzUtMi41NzktNS43NS01Ljc1UzQuODI5IDIuMjUgOCAyLjI1YTUuNzEgNS43MSAwIDAgMSAzLjgwNSAxLjQ0NWwtMS40NTEgMS40NTFhLjUuNSAwIDAgMCAuMzUzLjg1NHoiLz4KPC9zdmc+Cg==')";
                }
            },
        }
    
        function $C(aDoc, tag, attrs, skipAttrs) {
            let d = (aDoc || document);
            attrs = attrs || {};
            skipAttrs = skipAttrs || [];
            var el = "createXULElement" in d ? d.createXULElement(tag) : d.createElement(tag);
            return $A(el, attrs, skipAttrs);
        }
    
        function $A(el, obj, skipAttrs) {
            skipAttrs = skipAttrs || [];
            if (obj) Object.keys(obj).forEach(function (key) {
                if (!skipAttrs.includes(key)) {
                    if (typeof obj[key] === 'function') {
                        el.setAttribute(key, "(" + obj[key].toString() + ").call(this, event);");
                    } else {
                        el.setAttribute(key, obj[key]);
                    }
                }
            });
            return el;
        }
    
        "canLoadToolbarContentPromise" in PlacesUIUtils ? PlacesUIUtils.canLoadToolbarContentPromise.then(_ => moveReloadIntoURL.init()) : moveReloadIntoURL.init();
    })();
    Alles anzeigen

    Teste mal ob das so passt.
    Vielleicht hat ja jemand eine Idee wie man das Symbol auch noch fett kriegt.

    SVG Stop.svg:

    Code
    <!-- This Source Code Form is subject to the terms of the Mozilla Public
       - License, v. 2.0. If a copy of the MPL was not distributed with this
       - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16" fill="#d90000" fill-opacity="1.0">
      <path d="m9.108 7.776 4.709-4.709a.626.626 0 0 0-.884-.885L8.244 6.871l-.488 0-4.689-4.688a.625.625 0 1 0-.884.885L6.87 7.754l0 .491-4.687 4.687a.626.626 0 0 0 .884.885L7.754 9.13l.491 0 4.687 4.687a.627.627 0 0 0 .885 0 .626.626 0 0 0 0-.885L9.108 8.223l0-.447z"/>
    </svg>

    SVG Reload.svg:

    Code
    <!-- This Source Code Form is subject to the terms of the Mozilla Public
       - License, v. 2.0. If a copy of the MPL was not distributed with this
       - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16" fill="#008c00" fill-opacity="1.0">
      <path d="M10.707 6 14.7 6l.3-.3 0-3.993a.5.5 0 0 0-.854-.354l-1.459 1.459A6.95 6.95 0 0 0 8 1C4.141 1 1 4.141 1 8s3.141 7 7 7a6.97 6.97 0 0 0 6.968-6.322.626.626 0 0 0-.562-.682.635.635 0 0 0-.682.562A5.726 5.726 0 0 1 8 13.75c-3.171 0-5.75-2.579-5.75-5.75S4.829 2.25 8 2.25a5.71 5.71 0 0 1 3.805 1.445l-1.451 1.451a.5.5 0 0 0 .353.854z"/>
    </svg>

    Mfg.
    Endor

  • Was wird bei Euch aufgezeigt, nachdem "about:robots" via Adressleiste aufgerufen wurde?

    • Endor
    • 28. April 2024 um 19:38

    Hier auch eine Wikipedia Seite zu:
    Gort! Klaatu barada nikto!
    Stammt aus einem amerikanischen Science-Fiction-Film von 1951.

    Klaatu barada nikto – Wikipedia
    de.wikipedia.org


    Mfg.
    Endor

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

    • Endor
    • 28. April 2024 um 19:23

    Hi jizz.
    Thank you for the new Version. Works in Firefox 125, 126 beta and 127 Nightly.

    This two lines are no longer needed:
    const CustomizableUI = globalThis.CustomizableUI || Cu.import("resource:///modules/CustomizableUI.jsm").CustomizableUI;
    const Services = globalThis.Services || Cu.import("resource://gre/modules/Services.jsm").Services;

    This two jsm Files no longer exist in Firefox.

    Here your Version with German translation and without the above mentioned lines:

    CSS
    // ==UserScript==
    // @name           moveReloadIntoUrl.uc.js
    // @description    Neuladen Schaltfläche in Adressleiste verschieben
    // @compatibility  Firefox 125+
    // @author         Ryan, GOLF-AT
    // @include        main
    // @shutdown       window.moveReloadIntoURL.unload();
    // @homepageURL    https://github.com/benzBrake/FirefoxCustomize
    // @version        1.2.4
    // @note           1.2.4 Bug 1880914  Move Browser* helper functions used from global menubar and similar commands to a
    // @note                 single object in a separate file, loaded as-needed and Bug 1820534 - Move front-end to modern flexbox
    // @note           1.2.3 Änderung wird in neuen Fenstern nicht wirksam und kann nicht verwendet werden, wenn Hot-Swapping stattfindet.
    // @note           1.2.2 Kompatibilität für Firefox 103
    // @note           1.2.0 Hot-Swap-fähig, kompatibel mit Nachtmodus und Bilder wurden ins Script integriert
    // @note           1.1 20220424 Fehler behoben, und Firefox 100 Kompatibel
    // @note           1.0 20171104
    // ==/UserScript==
    (function () {
        let { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components;
        if (window.moveReloadIntoURL) {
            window.moveReloadIntoURL.unload();
            delete window.moveReloadIntoURL;
        }
    
        window.moveReloadIntoURL = {
            handleEvent: function (aEvent) {
                if (aEvent.type === "MoveReloadIntoUrlUnload") {
                    let window = aEvent.originalTarget,
                        doc = window.document;
                    let RELOADBTN = CustomizableUI.getWidget("reload-button").forWindow(window).node;
                    if (RELOADBTN)
                        RELOADBTN.removeEventListener('DOMAttrModified', this.reloadBtnAttr);
                    let BTN = doc.getElementById("new-stop-reload-button");
                    if (BTN)
                        BTN.parentNode.removeChild(BTN);
                    if (this.STYLE) {
                        this.sss.unregisterSheet(this.STYLE.url, this.STYLE.type);
                    }
                    window.removeEventListener('MoveReloadIntoUrlUnload', this);
                    if (window.moveReloadIntoURL)
                        delete window.moveReloadIntoURL;
                }
            },
            init: function () {
                if (window.moveReloadIntoURL) {
                    this.sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
                    this.STYLE = {
                        url: Services.io.newURI('data:text/css;charset=UTF-8,' + encodeURIComponent(`
                    @-moz-document url('chrome://browser/content/browser.xhtml') {
                        #stop-reload-button {
                            display: none;
                        }
                        #new-stop-reload-button {
                            display: flex !important;
                            display: -moz-box !important;
                            order: 9999;
                            -moz-box-ordinal-group: 9999;
                        }
                        #new-stop-reload-button .urlbar-icon {
                            -moz-context-properties: fill, fill-opacity !important;
                            fill: currentColor !important;
                        }
                    }
                  `)),
                        type: this.sss.AGENT_SHEET
                    };
                    this.sss.loadAndRegisterSheet(this.STYLE.url, this.STYLE.type);
                }
                let PABTN = CustomizableUI.getWidget("pageActionButton").forWindow(window).node;
                let RELOADBTN = CustomizableUI.getWidget("reload-button").forWindow(window).node;
                let BTN = $C(document, 'hbox', {
                    id: "new-stop-reload-button",
                    class: "urlbar-page-action urlbar-addon-page-action",
                    "tooltiptext": Services.locale.appLocaleAsBCP47.includes("de") ? 'Linksklick: Seite neuladen\r\nRechtsklick: Neu laden ohne Cache' : 'Left click: refresh page\nRight click: force refresh page',
                    style: "list-style-image: url('data:image/svg+xml;base64,PCEtLSBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCiAgIC0gTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcwogICAtIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9ImNvbnRleHQtZmlsbCIgZmlsbC1vcGFjaXR5PSJjb250ZXh0LWZpbGwtb3BhY2l0eSI+CiAgPHBhdGggZD0iTTEwLjcwNyA2IDE0LjcgNmwuMy0uMyAwLTMuOTkzYS41LjUgMCAwIDAtLjg1NC0uMzU0bC0xLjQ1OSAxLjQ1OUE2Ljk1IDYuOTUgMCAwIDAgOCAxQzQuMTQxIDEgMSA0LjE0MSAxIDhzMy4xNDEgNyA3IDdhNi45NyA2Ljk3IDAgMCAwIDYuOTY4LTYuMzIyLjYyNi42MjYgMCAwIDAtLjU2Mi0uNjgyLjYzNS42MzUgMCAwIDAtLjY4Mi41NjJBNS43MjYgNS43MjYgMCAwIDEgOCAxMy43NWMtMy4xNzEgMC01Ljc1LTIuNTc5LTUuNzUtNS43NVM0LjgyOSAyLjI1IDggMi4yNWE1LjcxIDUuNzEgMCAwIDEgMy44MDUgMS40NDVsLTEuNDUxIDEuNDUxYS41LjUgMCAwIDAgLjM1My44NTR6Ii8+Cjwvc3ZnPgo=",
                    onclick: function (e) {
                        let r = CustomizableUI.getWidget("reload-button").forWindow(window).node;
                        if (r && r.getAttribute('displaystop'))
                            gBrowser.stop
                        else
                            if (e.button == 2) {
                                gBrowser.reloadWithFlags(Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_CACHE) 
                            } else {
                                if (gBrowser.selectedBrowser._userTypedValue) {
                                    e.target.ownerGlobal.openTrustedLinkIn(gBrowser.selectedBrowser._userTypedValue, 'current', {
                                        postData: null,
                                        triggeringPrincipal: gBrowser.selectedBrowser.contentPrincipal
                                    });
                                } else {
                                    gBrowser.reload();
                                }
                            }
                    }
                })
    
                BTN.appendChild($C(document, 'image', {
                    class: 'urlbar-icon',
                }));
    
                PABTN.after(BTN);
                RELOADBTN.addEventListener('DOMAttrModified', this.reloadBtnAttr);
                this.reloadBtnAttr();
    
                window.addEventListener('MoveReloadIntoUrlUnload', this)
            },
            unload: function () {
                let windows = Services.wm.getEnumerator('navigator:browser');
                while (windows.hasMoreElements()) {
                    let win = windows.getNext();
                    win.dispatchEvent(new CustomEvent("MoveReloadIntoUrlUnload"));
                }
            },
            reloadBtnAttr: function (e) {
                let doc = e ? e.target.ownerDocument : document;
                btn = doc.getElementById('new-stop-reload-button');
                if (btn && (!e || e.attrName == 'displaystop')) {
                    var newVal = e ? e.newValue : doc.getElementById(
                        "reload-button").getAttribute('displaystop');
                    if (newVal)
                        btn.style.listStyleImage = "url('data:image/svg+xml;base64,PCEtLSBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCiAgIC0gTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcwogICAtIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9ImNvbnRleHQtZmlsbCIgZmlsbC1vcGFjaXR5PSJjb250ZXh0LWZpbGwtb3BhY2l0eSI+CiAgPHBhdGggZD0ibTkuMTA4IDcuNzc2IDQuNzA5LTQuNzA5YS42MjYuNjI2IDAgMCAwLS44ODQtLjg4NUw4LjI0NCA2Ljg3MWwtLjQ4OCAwLTQuNjg5LTQuNjg4YS42MjUuNjI1IDAgMSAwLS44ODQuODg1TDYuODcgNy43NTRsMCAuNDkxLTQuNjg3IDQuNjg3YS42MjYuNjI2IDAgMCAwIC44ODQuODg1TDcuNzU0IDkuMTNsLjQ5MSAwIDQuNjg3IDQuNjg3YS42MjcuNjI3IDAgMCAwIC44ODUgMCAuNjI2LjYyNiAwIDAgMCAwLS44ODVMOS4xMDggOC4yMjNsMC0uNDQ3eiIvPgo8L3N2Zz4K')";
                    else
                        btn.style.listStyleImage = "url('data:image/svg+xml;base64,PCEtLSBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCiAgIC0gTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcwogICAtIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9ImNvbnRleHQtZmlsbCIgZmlsbC1vcGFjaXR5PSJjb250ZXh0LWZpbGwtb3BhY2l0eSI+CiAgPHBhdGggZD0iTTEwLjcwNyA2IDE0LjcgNmwuMy0uMyAwLTMuOTkzYS41LjUgMCAwIDAtLjg1NC0uMzU0bC0xLjQ1OSAxLjQ1OUE2Ljk1IDYuOTUgMCAwIDAgOCAxQzQuMTQxIDEgMSA0LjE0MSAxIDhzMy4xNDEgNyA3IDdhNi45NyA2Ljk3IDAgMCAwIDYuOTY4LTYuMzIyLjYyNi42MjYgMCAwIDAtLjU2Mi0uNjgyLjYzNS42MzUgMCAwIDAtLjY4Mi41NjJBNS43MjYgNS43MjYgMCAwIDEgOCAxMy43NWMtMy4xNzEgMC01Ljc1LTIuNTc5LTUuNzUtNS43NVM0LjgyOSAyLjI1IDggMi4yNWE1LjcxIDUuNzEgMCAwIDEgMy44MDUgMS40NDVsLTEuNDUxIDEuNDUxYS41LjUgMCAwIDAgLjM1My44NTR6Ii8+Cjwvc3ZnPgo=')";
                }
            },
        }
    
        function $C(aDoc, tag, attrs, skipAttrs) {
            attrs = attrs || {};
            skipAttrs = skipAttrs || [];
            var el = (aDoc || document).createXULElement(tag);
            return $A(el, attrs, skipAttrs);
        }
    
        function $A(el, obj, skipAttrs) {
            skipAttrs = skipAttrs || [];
            if (obj) Object.keys(obj).forEach(function (key) {
                if (!skipAttrs.includes(key)) {
                    if (typeof obj[key] === 'function') {
                        el.setAttribute(key, "(" + obj[key].toString() + ").call(this, event);");
                    } else {
                        el.setAttribute(key, obj[key]);
                    }
                }
            });
            return el;
        }
    
        PlacesUIUtils.canLoadToolbarContentPromise.then(_ => moveReloadIntoURL.init());
    })();
    Alles anzeigen

    Best regards
    Endor

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

    • Endor
    • 28. April 2024 um 16:20

    In Firefox 126 braucht es schon die neuen. Mit den alten tut sich nichts mehr.
    Eben getestet.

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

    • Endor
    • 28. April 2024 um 16:14

    Habe ich auch schon bemerkt.
    Trotzdem vielen Dank für die Info.
    Mfg.
    Endor

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

    • Endor
    • 28. April 2024 um 16:04

    Bin dabei...

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

    • Endor
    • 28. April 2024 um 16:00

    Hallo milupo.

    Habe es mal so wie von dir beschrieben geändert.
    Funktioniert in Firefox 127 Nightly einwandfrei.

    CSS
    // ==UserScript==
    // @name           moveReloadIntoUrl.uc.js
    // @description    Neuladen Schaltfläche in Adressleiste verschieben
    // @compatibility  Firefox 125+
    // @author         Ryan, GOLF-AT
    // @include        main
    // @shutdown       window.moveReloadIntoURL.unload();
    // @homepageURL    https://github.com/benzBrake/FirefoxCustomize
    // @version        1.2.4
    // @note           1.2.4 Bug 1880914  Move Browser* helper functions used from global menubar and similar commands to a single object in a separate file, loaded as-needed and Bug 1820534 - Move front-end to modern flexbox
    // @note           1.2.3 Änderung wird in neuen Fenstern nicht wirksam und kann 
    // @note                 nicht verwendet werden, wenn Hot-Swapping stattfindet.
    // @note           1.2.2 Kompatibilität für Firefox 103
    // @note           1.2.0 Hot-Swap-fähig, kompatibel mit Nachtmodus 
    // @note                 und Bilder wurden ins Script integriert
    // @note           1.1 20220424 Fehler behoben, und Firefox 100 Kompatibel
    // @note           1.0 20171104
    // ==/UserScript==
    (function () {
        let { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components;
        if (window.moveReloadIntoURL) {
            window.moveReloadIntoURL.unload();
            delete window.moveReloadIntoURL;
        }
    
        window.moveReloadIntoURL = {
            handleEvent: function (aEvent) {
                if (aEvent.type === "MoveReloadIntoUrlUnload") {
                    let window = aEvent.originalTarget,
                        doc = window.document;
                    let RELOADBTN = CustomizableUI.getWidget("reload-button").forWindow(window).node;
                    if (RELOADBTN)
                        RELOADBTN.removeEventListener('DOMAttrModified', this.reloadBtnAttr);
                    let BTN = doc.getElementById("new-stop-reload-button");
                    if (BTN)
                        BTN.parentNode.removeChild(BTN);
                    if (this.STYLE) {
                        this.sss.unregisterSheet(this.STYLE.url, this.STYLE.type);
                    }
                    window.removeEventListener('MoveReloadIntoUrlUnload', this);
                    if (window.moveReloadIntoURL)
                        delete window.moveReloadIntoURL;
                }
            },
            init: function () {
                if (window.moveReloadIntoURL) {
                    this.sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
                    this.STYLE = {
                        url: Services.io.newURI('data:text/css;charset=UTF-8,' + encodeURIComponent(`
                    @-moz-document url('chrome://browser/content/browser.xhtml') {
                        #stop-reload-button {
                            display: none;
                        }
                        #new-stop-reload-button {
                            display: flex !important;
                            display: -moz-box !important;
                            order: 9999;
                            -moz-box-ordinal-group: 9999;
                        }
                        #new-stop-reload-button .urlbar-icon {
                            -moz-context-properties: fill, fill-opacity !important;
                            fill: currentColor !important;
                        }
                    }
                  `)),
                        type: this.sss.AGENT_SHEET
                    };
                    this.sss.loadAndRegisterSheet(this.STYLE.url, this.STYLE.type);
                }
                let PABTN = CustomizableUI.getWidget("pageActionButton").forWindow(window).node;
                let RELOADBTN = CustomizableUI.getWidget("reload-button").forWindow(window).node;
                let BTN = $C(document, 'hbox', {
                    id: "new-stop-reload-button",
                    class: "urlbar-page-action urlbar-addon-page-action",
                    "tooltiptext": Services.locale.appLocaleAsBCP47.includes("de") ? 'Linksklick: Seite neuladen\r\nRechtsklick: Neu laden ohne Cache' : 'Left click: refresh page\nRight click: force refresh page',
                    style: "list-style-image: url('data:image/svg+xml;base64,PCEtLSBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCiAgIC0gTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcwogICAtIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9ImNvbnRleHQtZmlsbCIgZmlsbC1vcGFjaXR5PSJjb250ZXh0LWZpbGwtb3BhY2l0eSI+CiAgPHBhdGggZD0iTTEwLjcwNyA2IDE0LjcgNmwuMy0uMyAwLTMuOTkzYS41LjUgMCAwIDAtLjg1NC0uMzU0bC0xLjQ1OSAxLjQ1OUE2Ljk1IDYuOTUgMCAwIDAgOCAxQzQuMTQxIDEgMSA0LjE0MSAxIDhzMy4xNDEgNyA3IDdhNi45NyA2Ljk3IDAgMCAwIDYuOTY4LTYuMzIyLjYyNi42MjYgMCAwIDAtLjU2Mi0uNjgyLjYzNS42MzUgMCAwIDAtLjY4Mi41NjJBNS43MjYgNS43MjYgMCAwIDEgOCAxMy43NWMtMy4xNzEgMC01Ljc1LTIuNTc5LTUuNzUtNS43NVM0LjgyOSAyLjI1IDggMi4yNWE1LjcxIDUuNzEgMCAwIDEgMy44MDUgMS40NDVsLTEuNDUxIDEuNDUxYS41LjUgMCAwIDAgLjM1My44NTR6Ii8+Cjwvc3ZnPgo=",
                    onclick: function (e) {
                        let r = CustomizableUI.getWidget("reload-button").forWindow(window).node;
                        if (r && r.getAttribute('displaystop'))
                            e.target.ownerGlobal.BrowserCommands.stop();
                        else
                            if (e.button == 2) {
                                const global = e.target.ownerGlobal;
                                "BrowserReloadSkipCache" in global ? global.BrowserReloadSkipCache() : global.BrowserReloadWithFlags(Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_CACHE);
                            } else {
                                if (gBrowser.selectedBrowser._userTypedValue) {
                                    e.target.ownerGlobal.openTrustedLinkIn(gBrowser.selectedBrowser._userTypedValue, 'current', {
                                        postData: null,
                                        triggeringPrincipal: gBrowser.selectedBrowser.contentPrincipal
                                    });
                                } else {
                                    e.target.ownerGlobal.BrowserCommands.reload();
                                }
                            }
                    }
                })
    
                BTN.appendChild($C(document, 'image', {
                    class: 'urlbar-icon',
                }));
    
                PABTN.after(BTN);
                RELOADBTN.addEventListener('DOMAttrModified', this.reloadBtnAttr);
                this.reloadBtnAttr();
    
                window.addEventListener('MoveReloadIntoUrlUnload', this)
            },
            unload: function () {
                let windows = Services.wm.getEnumerator('navigator:browser');
                while (windows.hasMoreElements()) {
                    let win = windows.getNext();
                    win.dispatchEvent(new CustomEvent("MoveReloadIntoUrlUnload"));
                }
            },
            reloadBtnAttr: function (e) {
                let doc = e ? e.target.ownerDocument : document;
                btn = doc.getElementById('new-stop-reload-button');
                if (btn && (!e || e.attrName == 'displaystop')) {
                    var newVal = e ? e.newValue : doc.getElementById(
                        "reload-button").getAttribute('displaystop');
                    if (newVal)
                        btn.style.listStyleImage = "url('data:image/svg+xml;base64,PCEtLSBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCiAgIC0gTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcwogICAtIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9ImNvbnRleHQtZmlsbCIgZmlsbC1vcGFjaXR5PSJjb250ZXh0LWZpbGwtb3BhY2l0eSI+CiAgPHBhdGggZD0ibTkuMTA4IDcuNzc2IDQuNzA5LTQuNzA5YS42MjYuNjI2IDAgMCAwLS44ODQtLjg4NUw4LjI0NCA2Ljg3MWwtLjQ4OCAwLTQuNjg5LTQuNjg4YS42MjUuNjI1IDAgMSAwLS44ODQuODg1TDYuODcgNy43NTRsMCAuNDkxLTQuNjg3IDQuNjg3YS42MjYuNjI2IDAgMCAwIC44ODQuODg1TDcuNzU0IDkuMTNsLjQ5MSAwIDQuNjg3IDQuNjg3YS42MjcuNjI3IDAgMCAwIC44ODUgMCAuNjI2LjYyNiAwIDAgMCAwLS44ODVMOS4xMDggOC4yMjNsMC0uNDQ3eiIvPgo8L3N2Zz4K')";
                    else
                        btn.style.listStyleImage = "url('data:image/svg+xml;base64,PCEtLSBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCiAgIC0gTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcwogICAtIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9ImNvbnRleHQtZmlsbCIgZmlsbC1vcGFjaXR5PSJjb250ZXh0LWZpbGwtb3BhY2l0eSI+CiAgPHBhdGggZD0iTTEwLjcwNyA2IDE0LjcgNmwuMy0uMyAwLTMuOTkzYS41LjUgMCAwIDAtLjg1NC0uMzU0bC0xLjQ1OSAxLjQ1OUE2Ljk1IDYuOTUgMCAwIDAgOCAxQzQuMTQxIDEgMSA0LjE0MSAxIDhzMy4xNDEgNyA3IDdhNi45NyA2Ljk3IDAgMCAwIDYuOTY4LTYuMzIyLjYyNi42MjYgMCAwIDAtLjU2Mi0uNjgyLjYzNS42MzUgMCAwIDAtLjY4Mi41NjJBNS43MjYgNS43MjYgMCAwIDEgOCAxMy43NWMtMy4xNzEgMC01Ljc1LTIuNTc5LTUuNzUtNS43NVM0LjgyOSAyLjI1IDggMi4yNWE1LjcxIDUuNzEgMCAwIDEgMy44MDUgMS40NDVsLTEuNDUxIDEuNDUxYS41LjUgMCAwIDAgLjM1My44NTR6Ii8+Cjwvc3ZnPgo=')";
                }
            },
        }
    
        function $C(aDoc, tag, attrs, skipAttrs) {
            attrs = attrs || {};
            skipAttrs = skipAttrs || [];
            var el = (aDoc || document).createXULElement(tag);
            return $A(el, attrs, skipAttrs);
        }
    
        function $A(el, obj, skipAttrs) {
            skipAttrs = skipAttrs || [];
            if (obj) Object.keys(obj).forEach(function (key) {
                if (!skipAttrs.includes(key)) {
                    if (typeof obj[key] === 'function') {
                        el.setAttribute(key, "(" + obj[key].toString() + ").call(this, event);");
                    } else {
                        el.setAttribute(key, obj[key]);
                    }
                }
            });
            return el;
        }
    
        PlacesUIUtils.canLoadToolbarContentPromise.then(_ => moveReloadIntoURL.init());
    })();
    Alles anzeigen

    Würde diese Version auch schon in Firefox 125 funktionieren?

    Mfg.
    Endor

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

    • Endor
    • 28. April 2024 um 15:38

    Hi jizz.

    Thank you very much for the new version.
    It works perfect again.

    Thank you for the fast fix.
    Best regards
    Endor

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

    • Endor
    • 28. April 2024 um 12:18

    Hallo zusammen.
    Habe hier ein Script, welches die Neuladen Schaltfläche in die Adressleiste verschiebt.
    Bei Linksklick wird der Tab neu geladen, bei Rechtsklick wird der Tab neu geladen ohne
    den Cache zu berücksichtigen. Habe einige Anpassungen wie weiter oben erwähnt gemacht,
    aber bei klick tut sich nichts. Habt Ihr eine Idee?
    Hier das Script:

    JavaScript
    // ==UserScript==
    // @name           moveReloadIntoUrl.uc.js
    // @description    Neuladen Schaltfläche in Adressleiste verschieben
    // @compatibility  Firefox 103+
    // @author         Ryan, GOLF-AT
    // @include        main
    // @shutdown       window.moveReloadIntoURL.unload();
    // @homepageURL    https://github.com/benzBrake/FirefoxCustomize
    // @version        1.2.3
    // @note           1.2.3 Änderung wird in neuen Fenstern nicht wirksam und kann 
    // @note                 nicht verwendet werden, wenn Hot-Swapping stattfindet.
    // @note           1.2.2 Kompatibilität angepasst für Firefox 103
    // @note           1.2.0 Hot-Swap-fähig, kompatibel mit Nachtmodus 
    // @note                 und Bilder wurden ins Script integriert
    // @note           1.1 20220424 Fehler behoben, und Firefox 100 Kompatibel
    // @note           1.0 20171104
    // ==/UserScript==
    (function () {
      let { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components;
       const CustomizableUI = globalThis.CustomizableUI || Cu.import("resource:///modules/CustomizableUI.jsm").CustomizableUI;
        const Services = globalThis.Services || Cu.import("resource://gre/modules/Services.jsm").Services; 
    
        if (window.moveReloadIntoURL) {
            window.moveReloadIntoURL.unload();
            delete window.moveReloadIntoURL;
        }
    
        window.moveReloadIntoURL = {
            handleEvent: function (aEvent) {
                if (aEvent.type === "MoveReloadIntoUrlUnload") {
                    let win = aEvent.originalTarget,
                        doc = win.document;
                    let RELOADBTN = CustomizableUI.getWidget("reload-button").forWindow(win).node;
                    if (RELOADBTN)
                        RELOADBTN.removeEventListener('DOMAttrModified', this.reloadBtnAttr);
                    let BTN = doc.getElementById("new-stop-reload-button");
                    if (BTN)
                        BTN.parentNode.removeChild(BTN);
                    if (this.STYLE) {
                        this.sss.unregisterSheet(this.STYLE.url, this.STYLE.type);
                    }
                    win.removeEventListener('MoveReloadIntoUrlUnload', this);
                    if (win.moveReloadIntoURL)
                        delete win.moveReloadIntoURL;
                }
            },
            init: function (doc, win) {
                if (win.moveReloadIntoURL) {
                    this.sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
                    this.STYLE = {
                        url: Services.io.newURI('data:text/css;charset=UTF-8,' + encodeURIComponent(`
                    @-moz-document url('chrome://browser/content/browser.xhtml') {
                        #stop-reload-button {
                            display: none !important;
                        }
                        #new-stop-reload-button {
                            order: 999;
                        }
                    }
                  `)),
                        type: this.sss.AGENT_SHEET
                    };
                    this.sss.loadAndRegisterSheet(this.STYLE.url, this.STYLE.type);
                }
                let PABTN = CustomizableUI.getWidget("pageActionButton").forWindow(win).node;
                let RELOADBTN = CustomizableUI.getWidget("reload-button").forWindow(win).node;
                let BTN = $C(doc, 'hbox', {
                    id: "new-stop-reload-button",
                    class: "urlbar-page-action urlbar-addon-page-action",
                    "tooltiptext": Services.locale.appLocaleAsBCP47.includes("de") ? 'Linksklick: Seite neuladen\r\nRechtsklick: Neu laden erzwingen' : 'Left click: refresh page\nRight click: force refresh page',
                    style: "list-style-image: url('data:image/svg+xml;base64,PCEtLSBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCiAgIC0gTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcwogICAtIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9ImNvbnRleHQtZmlsbCIgZmlsbC1vcGFjaXR5PSJjb250ZXh0LWZpbGwtb3BhY2l0eSI+CiAgPHBhdGggZD0iTTEwLjcwNyA2IDE0LjcgNmwuMy0uMyAwLTMuOTkzYS41LjUgMCAwIDAtLjg1NC0uMzU0bC0xLjQ1OSAxLjQ1OUE2Ljk1IDYuOTUgMCAwIDAgOCAxQzQuMTQxIDEgMSA0LjE0MSAxIDhzMy4xNDEgNyA3IDdhNi45NyA2Ljk3IDAgMCAwIDYuOTY4LTYuMzIyLjYyNi42MjYgMCAwIDAtLjU2Mi0uNjgyLjYzNS42MzUgMCAwIDAtLjY4Mi41NjJBNS43MjYgNS43MjYgMCAwIDEgOCAxMy43NWMtMy4xNzEgMC01Ljc1LTIuNTc5LTUuNzUtNS43NVM0LjgyOSAyLjI1IDggMi4yNWE1LjcxIDUuNzEgMCAwIDEgMy44MDUgMS40NDVsLTEuNDUxIDEuNDUxYS41LjUgMCAwIDAgLjM1My44NTR6Ii8+Cjwvc3ZnPgo=",
                    onclick: function (e) {
                        let r = CustomizableUI.getWidget("reload-button").forWindow(window).node;
                        if (r && r.getAttribute('displaystop'))
                            e.target.ownerGlobal.BrowserCommands.Stop();
                        else
                            if (e.button == 2) {
                                e.target.ownerGlobal.BrowserCommands.ReloadSkipCache();
                            } else {
                                if (gBrowser.selectedBrowser._userTypedValue) {
                                    e.target.ownerGlobal.openTrustedLinkIn(gBrowser.selectedBrowser._userTypedValue, 'current', {
                                        postData: null,
                                        triggeringPrincipal: gBrowser.selectedBrowser.contentPrincipal
                                    });
                                } else {
                                    e.target.ownerGlobal.BrowserCommands.Reload();
                                }
                            }
                    }
                })
    
                BTN.appendChild($C(doc, 'image', {
                    class: 'urlbar-icon',
                }));
    
                PABTN.after(BTN);
                RELOADBTN.addEventListener('DOMAttrModified', this.reloadBtnAttr);
                this.reloadBtnAttr();
    
                win.addEventListener('MoveReloadIntoUrlUnload', this)
            },
            unload: function () {
                let windows = Services.wm.getEnumerator('navigator:browser');
                while (windows.hasMoreElements()) {
                    let win = windows.getNext();
                    win.dispatchEvent(new CustomEvent("MoveReloadIntoUrlUnload"));
                }
            },
            reloadBtnAttr: function (e) {
                let doc = e ? e.target.ownerDocument : document;
                btn = doc.getElementById('new-stop-reload-button');
                if (btn && (!e || e.attrName == 'displaystop')) {
                    var newVal = e ? e.newValue : doc.getElementById(
                        "reload-button").getAttribute('displaystop');
                    if (newVal)
                        btn.style.listStyleImage = "url('data:image/svg+xml;base64,PCEtLSBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCiAgIC0gTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcwogICAtIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9ImNvbnRleHQtZmlsbCIgZmlsbC1vcGFjaXR5PSJjb250ZXh0LWZpbGwtb3BhY2l0eSI+CiAgPHBhdGggZD0ibTkuMTA4IDcuNzc2IDQuNzA5LTQuNzA5YS42MjYuNjI2IDAgMCAwLS44ODQtLjg4NUw4LjI0NCA2Ljg3MWwtLjQ4OCAwLTQuNjg5LTQuNjg4YS42MjUuNjI1IDAgMSAwLS44ODQuODg1TDYuODcgNy43NTRsMCAuNDkxLTQuNjg3IDQuNjg3YS42MjYuNjI2IDAgMCAwIC44ODQuODg1TDcuNzU0IDkuMTNsLjQ5MSAwIDQuNjg3IDQuNjg3YS42MjcuNjI3IDAgMCAwIC44ODUgMCAuNjI2LjYyNiAwIDAgMCAwLS44ODVMOS4xMDggOC4yMjNsMC0uNDQ3eiIvPgo8L3N2Zz4K')";
                    else
                        btn.style.listStyleImage = "url('data:image/svg+xml;base64,PCEtLSBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCiAgIC0gTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcwogICAtIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9ImNvbnRleHQtZmlsbCIgZmlsbC1vcGFjaXR5PSJjb250ZXh0LWZpbGwtb3BhY2l0eSI+CiAgPHBhdGggZD0iTTEwLjcwNyA2IDE0LjcgNmwuMy0uMyAwLTMuOTkzYS41LjUgMCAwIDAtLjg1NC0uMzU0bC0xLjQ1OSAxLjQ1OUE2Ljk1IDYuOTUgMCAwIDAgOCAxQzQuMTQxIDEgMSA0LjE0MSAxIDhzMy4xNDEgNyA3IDdhNi45NyA2Ljk3IDAgMCAwIDYuOTY4LTYuMzIyLjYyNi42MjYgMCAwIDAtLjU2Mi0uNjgyLjYzNS42MzUgMCAwIDAtLjY4Mi41NjJBNS43MjYgNS43MjYgMCAwIDEgOCAxMy43NWMtMy4xNzEgMC01Ljc1LTIuNTc5LTUuNzUtNS43NVM0LjgyOSAyLjI1IDggMi4yNWE1LjcxIDUuNzEgMCAwIDEgMy44MDUgMS40NDVsLTEuNDUxIDEuNDUxYS41LjUgMCAwIDAgLjM1My44NTR6Ii8+Cjwvc3ZnPgo=')";
                }
            },
        }
    
        function $C(aDoc, tag, attrs, skipAttrs) {
            attrs = attrs || {};
            skipAttrs = skipAttrs || [];
            var el = (aDoc || document).createXULElement(tag);
            return $A(el, attrs, skipAttrs);
        }
    
        function $A(el, obj, skipAttrs) {
            skipAttrs = skipAttrs || [];
            if (obj) Object.keys(obj).forEach(function (key) {
                if (!skipAttrs.includes(key)) {
                    if (typeof obj[key] === 'function') {
                        el.setAttribute(key, "(" + obj[key].toString() + ").call(this, event);");
                    } else {
                        el.setAttribute(key, obj[key]);
                    }
                }
            });
            return el;
        }
    
        if (gBrowserInit.delayedStartupFinished) window.moveReloadIntoURL.init(document, window)
        else {
            let delayedListener = (subject, topic) => {
                if (topic == "browser-delayed-startup-finished" && subject == window) {
                    Services.obs.removeObserver(delayedListener, topic);
                    window.moveReloadIntoURL.init(subject.document, subject);
                }
            };
            Services.obs.addObserver(delayedListener, "browser-delayed-startup-finished");
        }
    })();
    Alles anzeigen

    Konsole sagt folgendes:

    Code
    Uncaught ReferenceError: gBrowserInit is not defined
        <anonymous> file:///C:/Users/xxxx/AppData/Roaming/Mozilla/Firefox/Profiles/6ha62y8g/chrome/move_reload_into_url.uc.js:142
        <anonymous> file:///C:/Users/xxxx/AppData/Roaming/Mozilla/Firefox/Profiles/6ha62y8g/chrome/move_reload_into_url.uc.js:152
        loadScript file:///C:/Program Files/Mozilla Firefox/userChromeJS/utilities.js:114
    move_reload_into_url.uc.js:142:9
        <anonym> file:///C:/Users/xxxx/AppData/Roaming/Mozilla/Firefox/Profiles/6ha62y8g/chrome/move_reload_into_url.uc.js:142
        <anonym> file:///C:/Users/xxxx/AppData/Roaming/Mozilla/Firefox/Profiles/6ha62y8g/chrome/move_reload_into_url.uc.js:152
        loadScript file:///C:/Program Files/Mozilla Firefox/userChromeJS/utilities.js:114

    Zeile 142:
    if (gBrowserInit.delayedStartupFinished) window.moveReloadIntoURL.init(document, window)

    Zeile 152:
    })();

    Mfg.
    Endor

Unterstütze uns!

Jährlich (2025)

92,9 %

92,9% (604,17 von 650 EUR)

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