| 
			 
					阅读:5081回复:10
				 
				FF76+ BMMultiColumn 书签自动排列脚本失效location.href.startsWith('chrome://browser/content/browser.x') && (function () {
    if (window.BMMultiColumn) {
        window.BMMultiColumn.destroy();
        delete window.BMMultiColumn;
    }
      
    var BMMultiColumn = {
        cachedMenus: [],
        init: function () {
            $('PlacesToolbarItems').addEventListener('popupshowing', this, false);
            var pop = $('BMB_bookmarksPopup');
            if (pop) {
                pop.addEventListener('popupshowing', this, false);
                pop.addEventListener('click', this, false);
            }
        },
        destroy: function () {
            $('PlacesToolbarItems').removeEventListener('popupshowing', this, false);
            var pop = $('BMB_bookmarksPopup');
            if (pop) {
                pop.removeEventListener('popupshowing', this, false);
                pop.removeEventListener('click', this, false);
            }
      
            var i = 0;
            for (i = 0; i < this.cachedMenus.length; i++) {
                var menu = this.cachedMenus;
                if (menu && menu._x_inited) {
                    menu._x_scrollbox.width = '';
                    if( menu._scrollBox && menu._scrollBox.style){
                        menu._scrollBox.style.maxHeight = "";
                    }
                          
                    menu.style.maxWidth = "";
      
                    var container = menu._x_box;
                    if(container){
                        container.style.minHeight = "";
                        container.style.height = "";
                        container.style.display = "";
                        container.style.flexFlow = "";
                        container.style.overflow = "";
                    }
      
                    delete menu._x_scrollbox;
                    delete menu._x_inited;
                    delete menu._x_box;
                }
            }
            this.cachedMenus = [];
        },
        handleEvent: function (event) {
            var menupopup;
            if (event.target.tagName == 'menu') {
                menupopup = event.target.menupopup;
            } else if (event.target.tagName == 'menupopup') {
                menupopup = event.target;
            } else return;
            if (!menupopup) return;
            //没有初始化或换过位置,重新设置属性
            if (!menupopup.firstChild) return;
      
            if (!menupopup._x_inited || !menupopup._x_scrollbox.scrollWidth) {
                var scrollbox = menupopup.shadowRoot.querySelector('[part=popupbox]');
   
                var box = scrollbox.shadowRoot.querySelector('[part=scrollbox]');
   
                if (box) {
                    menupopup._x_box = box;
                    menupopup._x_scrollbox = scrollbox;
                    if (!menupopup._x_inited) {
                        menupopup._x_inited = true;
                        this.cachedMenus.push(menupopup);
                    }
                }
                var container = menupopup._x_box;
                if(container){
                    container.style.minHeight = "21px";
                    container.style.height = "auto";
                    container.style.display = "inline-flex";
                    container.style.flexFlow = "column wrap";
                    //container.style.overflow = "auto";
                    container.style.overflow = "-moz-hidden-unscrollable";
                    menupopup._scrollBox.style.maxHeight = "calc(100vh - 129px)";
                }
                menupopup.style.maxWidth = "calc(100vw - 20px)";
            }
            if (menupopup._x_inited) {
                if (!(menupopup._x_scrollbox.clientWidth == menupopup._x_box.scrollWidth)) {
                    menupopup._x_scrollbox.width = menupopup._x_box.scrollWidth;
                }
                //弹出菜单点击bug,要计算两次
                if (event.type == "click") {
                   if (!(menupopup._x_scrollbox.clientWidth == menupopup._x_box.scrollWidth)) {
                       menupopup._x_scrollbox.width = menupopup._x_box.scrollWidth;
                   }
                }
                //如果菜单数量或者文字宽度发生变化,可能会多出空区域,重新计算下
                var menuitem = menupopup.lastChild;
                while (menuitem) {
                    if (!menuitem.style.maxWidth) {
                        menuitem.style.maxWidth = "300px";
                        menuitem.style.minWidth = "100px";
                    }
                    menuitem = menuitem.previousSibling;
                }
      
                var lastmenu = menupopup.lastChild;
                while (lastmenu) {
                    if (lastmenu.scrollWidth >= 90) break;
                    lastmenu = lastmenu.previousSibling;
                }
      
                if (lastmenu && lastmenu.scrollWidth >= 90) {
                    var pos1 = lastmenu.x - 0 + lastmenu.clientWidth;
                    var pos2 = menupopup._x_box.x - 0 + menupopup._x_box.clientWidth;
                    if (pos2 - pos1 > 30) {
                        menupopup._x_scrollbox.width = "";
                        menupopup._x_scrollbox.width = menupopup._x_box.scrollWidth;
                    }
                }
            }
        }
    }
    BMMultiColumn.init();
    window.BMMultiColumn = BMMultiColumn;
      
    function $(id) {
        return document.getElementById(id);
    }
})();@lonely_8 拜托了!				 | 
	|
| 
			 1楼# 
								发布于:2020-05-08 16:46				
			
					盒妹没失效,我们76用的好好的				 
							 | 
	|
| 
			 2楼# 
								发布于:2020-05-08 18:04				
			
					我的原生的失效了,连带标签多行也失效 
							 | 
	|
| 
			 3楼# 
								发布于:2020-05-08 18:15				
			zhouhuajdsh:盒妹没失效,我们76用的好好的回到原帖休想骗我  | 
	|
| 
			 4楼# 
								发布于:2020-05-09 09:18				
			cn2000:我的原生的失效了,连带标签多行也失效回到原帖多行标签有脚本可用 https://github.com/Endor8/userChrome.js/tree/master/Mutirowtabs/Firefox-73  | 
	|
					
						
  | 
	
| 
			 5楼# 
								发布于:2020-05-09 10:29				
			crisco:多行标签有脚本可用 https://github.com/Endor8/userChrome.js/tree/master/Mutirowtabs/Firefox-73回到原帖收下试试,谢谢热心回复帮助  				 | 
	|
| 
			 6楼# 
								发布于:2020-05-10 16:30				
			
					[part=popupbox] 
							改为 [part=arrowscrollbox]  | 
	|
| 
			 7楼# 
								发布于:2020-05-10 17:21				
			 | 
	|
| 
			 8楼# 
								发布于:2021-09-02 14:43				
			 | 
	|
| 
			 9楼# 
								发布于:2021-09-02 15:12				
			 | 
	|
| 
			 10楼# 
								发布于:2021-09-03 08:15				
			 | 
	|