UC脚本在141上部分失效

阅读:26回复:0
楼主#
/* Restore 'Space & Separator' items script for Firefox 102+ by Aris
   
  Default browser scripts always remove spaces and separators from default palette, so
  because of that they are added to an own toolbar now.
   
   - spaces and separators can be moved to any toolbar
   - to remove spaces or separators move them into palette
   - configuration toolbar behaves like a default toolbar, items and buttons can be placed on it
   - configuration toolbar is not visible outside customizing mode
   - default "Flexible Space" item is hidden from palette and added to configuration toolbar
   [!] BUG: do not move spaces, flexible spaces or separator to configuration toolbar or it will cause glitches
   [!] BUG: do not move main 'space'-item to palette or it will be hidden until customizing mode gets reopened
   
   [!] Fix for WebExtensions with own windows by 黒仪大螃蟹 (for 1-N scripts)
*/
   
ChromeUtils.importESModule("resource:///modules/CustomizableUI.sys.mjs");
var appversion = parseInt(Services.appinfo.version);
   
var AddSeparator = {
  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 tb_config_label = "Configuration Toolbar";
    var tb_spacer_label = "Space";
    var tb_sep_label = "Separator";
    var tb_spring_label = "Flexible Space";
         
    try {
     if(document.getElementById('configuration_toolbar') == null) {
           
      var tb_config = document.createXULElement("toolbar");
      tb_config.setAttribute("id","configuration_toolbar");
      tb_config.setAttribute("customizable","true");
      tb_config.setAttribute("class","toolbar-primary chromeclass-toolbar browser-toolbar customization-target");
      tb_config.setAttribute("mode","icons");
      tb_config.setAttribute("iconsize","small");
      tb_config.setAttribute("toolboxid","navigator-toolbox");
      tb_config.setAttribute("lockiconsize","true");
      tb_config.setAttribute("ordinal","1005");
      tb_config.setAttribute("defaultset","toolbarspacer,toolbarseparator");
         
      document.querySelector('#navigator-toolbox').appendChild(tb_config);
         
      CustomizableUI.registerArea("configuration_toolbar", {legacy: true});
      CustomizableUI.registerToolbarNode(tb_config);
         
      var tb_label = document.createXULElement("label");
      tb_label.setAttribute("label", tb_config_label+": ");
      tb_label.setAttribute("value", tb_config_label+": ");
      tb_label.setAttribute("id","tb_config_tb_label");
      tb_label.setAttribute("removable","false");
         
      tb_config.appendChild(tb_label);
         
         
      var tb_spacer = document.createXULElement("toolbarspacer");
      tb_spacer.setAttribute("id","spacer");
      tb_spacer.setAttribute("class","chromeclass-toolbar-additional");
      tb_spacer.setAttribute("customizableui-areatype","toolbar");
      tb_spacer.setAttribute("removable","false");
      tb_spacer.setAttribute("label", tb_spacer_label);
         
      tb_config.appendChild(tb_spacer);
       
         
      var tb_sep = document.createXULElement("toolbarseparator");
      tb_sep.setAttribute("id","separator");
      tb_sep.setAttribute("class","chromeclass-toolbar-additional");
      tb_sep.setAttribute("customizableui-areatype","toolbar");
      tb_sep.setAttribute("removable","false");
      tb_sep.setAttribute("label", tb_sep_label);
         
      tb_config.appendChild(tb_sep);
         
        
      var tb_spring = document.createXULElement("toolbarspring");
      tb_spring.setAttribute("id","spring");
      tb_spring.setAttribute("class","chromeclass-toolbar-additional");
      tb_spring.setAttribute("customizableui-areatype","toolbar");
      tb_spring.setAttribute("removable","false");
      tb_spring.setAttribute("flex","1"); 
      tb_spring.setAttribute("label", tb_spring_label);
             
      tb_config.appendChild(tb_spring);
           
      // CSS
      var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService);
   
      var uri = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent(`
        #configuration_toolbar {
          appearance: none !important;
          background-color: var(--toolbar-bgcolor);
          background-image: var(--toolbar-bgimage);
          background-clip: padding-box;
          color: var(--toolbar-color, inherit);
        }
        #main-window:not([customizing]) #configuration_toolbar {
          visibility: collapse;
        }
        #main-window[customizing] #configuration_toolbar #tb_config_tb_label {
          font-weight: bold !important;
        }
        #main-window[customizing] #configuration_toolbar :is(#spacer,#separator,#spring) {
          margin-inline-start: 20px;
        }
        #main-window[customizing] #configuration_toolbar :is(#wrapper-spacer,#wrapper-separator,#wrapper-spring) .toolbarpaletteitem-label {
          display: block !important;
          margin-inline-end: 20px;
        }
        #main-window[customizing] #wrapper-spacer #spacer {
          margin: 2px 0 !important;
        }
        #main-window[customizing] #configuration_toolbar #wrapper-spring #spring {
          margin: -1px 0 !important;
          min-width: 80px !important;
        }
        #main-window[customizing] #configuration_toolbar > * {
          padding: 2px !important;
        }
        #main-window[customizing] #configuration_toolbar > :is(#wrapper-spacer,#wrapper-separator,#wrapper-spring) {
          border: 1px dotted !important;
          margin-inline-start: 2px !important;
          margin-inline-end: 2px !important;
        }
        #main-window[customizing] toolbarspacer {
          border: 1px solid !important;
        }
        toolbar[orient="vertical"] toolbarseparator {
          appearance: none !important;
          border-top: 1px solid rgba(15,17,38, 0.5) !important;
          border-bottom: 1px solid rgba(255,255,255, 0.3) !important;
          margin: 2px 2px !important;
          height: 1px !important;
        }
        toolbar[orient="vertical"] toolbarspacer {
          appearance: none !important;
          height: 18px !important;
          width: 18px !important;
        }
        #customization-palette toolbarpaletteitem[id^="wrapper-customizableui-special-spring"],
        #customization-palette-container :is(#spring,#wrapper-spring) {
          display: none !important;
        }
        #main-window:not([customizing]) toolbar:not(#configuration_toolbar) toolbarspring {
          max-width: 100% !important;
        }
        /*#menubar-items + spacer {
          display: none !important;
        }*/
      `), null, null);
   
      sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
     }
    } catch(e){}
   
  }
   
}
   
/* initialization delay workaround */
document.addEventListener("DOMContentLoaded", AddSeparator.init(), false);
/* Use the below code instead of the one above this line, if initialization issues occur on startup */
/*
setTimeout(function(){
  AddSeparator.init();
},2000);
*/


如上脚本,其中分隔符| 这部分在141+版本失效了  似乎原作者也很久没活跃了,可否修复?