前往
大廳
主題

火狐UC腳本:AddMenuPlus規則-分頁右鍵功能:按標題重排所有、複製、關閉重複分頁

—— | 2016-04-16 14:06:22 | 巴幣 0 | 人氣 257

說明一下複製,其他自己看,因為複製功能複雜,標題無法詳細說明。
對常常需要在論壇、小屋要附上其他網站的標題和網站時特別方便。
功能:
複製此頁標題+網址(左中右三鍵)
左鍵 MD,中鍵普通,右鍵 BBS\n包含鏈接、非鏈接 2 種情況

複製所有分頁標題+網址(左中右三鍵)
左鍵:BBCode\n中鍵:MD 格式\n右鍵:HTML Code

說明:
左中右三鍵指滑鼠左中右三鍵(沒有中鍵就是用滾輪)
MD和HTML Code,巴哈不適用,我也不知道那個網站可以用。
複製所有分頁標題+網址就是火狐打開幾個分頁就全複製,包括釘選分頁。

中鍵分頁標題和網址:
徐國勇批羅瑩雪 核終戰神轟徐:多念點法律 - phs100的創作 - 巴哈姆特
http://home.gamer.com.tw/creationDetail.php?sn=3161962

右鍵 BBS\n包含鏈接、非鏈接 2 種情況:
放在巴哈的所見即所得是這樣:
[url=http://home.gamer.com.tw/creationDetail.php?sn=3161962]徐國勇批羅瑩雪 核終戰神轟徐:多念點法律 - phs100的創作 - 巴哈姆特[/url]

在原始碼裡貼上再切換所見即所得就變成超鏈結:
徐國勇批羅瑩雪 核終戰神轟徐:多念點法律 - phs100的創作 - 巴哈姆特

註:複製中文網址會變成亂碼。

//================分頁右鍵選單-================
tab([//添加分頁右鍵選單項
  {
        label: "按標題重排所有分頁",
        tooltiptext: "按標題重排,同域名靠近",
        image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACH0lEQVQ4jZXTzWoaURQH8IOrLPIMpbvmAbpIwJeID5JVP8giZJBhEBcZgotggl2FlgRpITSiaEONMyaisRJ11EwmH+M4Tk3QODN3XP67qA2xFUkvXO7q/7vnwDkUjW5xmXQKeVl6vJl0CpHIpkBEc0Tko1knk07B8xgc28ag34c9HIK5DjTtEqFwaIOI5mcieVmCY9uIRrfifv/Scmxne6/b7YIxFxfqBYSQIM5E8rKEwaAPv39pmYheBQKBxbpSgzfy4LgOGq0meGEGkpcl2PYQsZ3tvUAgsBjf3492zA6Yx+AyFw/2EDVFAcfz05FMOgXGXFiWCUWpwjRNOK4DlzE4rotqvY5rXcdJuYz14BQkEtkUNO0SHmMYjbzxrw+46/fxLfsdxUoFB8kkzmoKjuQ81rjgP8hcOBzaUBp19O576N3fwfxpwbAsKKqKg2QSJ+Uf+JxIoHBeRVqSsMpxE4iPiOaFUEgslIq4NQwYlgW928W1aeK81cKXRAK54hniXw9RajQR2/0IInpBv+eEHhFeEES5UICm67g2TWhGB6phoKw0ED9MoKJqSGZzWHn7PkZEC+MqaALheF7Mnp6ieXMDtd1BS2+jcdtGRdWQOpaw8ubdByJ6/XcFE8g6z4tHch61qys0bnVULjUkj3NPwy9nDZePiObXuKCYlmSUlOZ/hSeQVY4TY7uf/vT87PAEMu51Yfw+O/wUmRsHp672LyxdnN6ef1H/AAAAAElFTkSuQmCC",
        oncommand: function() {
            //var len = gBrowser.mPanelContainer.childNodes.length;
            //for (var i = 0; i < len; i++) {
               // if (event.button == 0) gBrowser.getBrowserAtIndex(i).reload();
               // else if (event.button == 2) gBrowser.getBrowserAtIndex(i).stop();
                //   }
            Array.from(gBrowser.tabs).sort((a, b) => a.label.localeCompare(b.label)).forEach(gBrowser.moveTabTo.bind(gBrowser));
         //使用favicon的值來排序
            Array.from(gBrowser.tabs).sort((a, b) => a.image.localeCompare(b.image)).forEach(gBrowser.moveTabTo.bind(gBrowser));
        }
},{
        label: "複製此頁標題+網址(左中右三鍵)",
        tooltiptext: "左鍵 MD,中鍵普通,右鍵 BBS\n包含鏈接、非鏈接 2 種情況",
        onclick: function(event) {
        var title = addMenu.convertText("%RLT_OR_UT%"),
            url = addMenu.convertText("%RLINK_OR_URL%");
        // 簡化下標題
        // [/\s(·|::|-|\|)\s.*/i, /_&#91;^\[\]【】]+$/].forEach(function(r){title = title.replace(r, "");});

        var formats = &#91;
            "[" + title + "](" + url + ")",
            title + "\n" + url + "",
            "[url=" + url + "]" + title + "[/url]"
        &#93;;

        var str = formats&#91;event.button];
        addMenu.copy(str);

        if (event.button === 1) { // 中鍵竟然不會自動關閉
            var node = event.target;
            while (node.localName != 'menupopup') {
                node = node.parentNode;
            }
            node.hidePopup();
        }
    },
        image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABlSURBVDhP5Y5BCsAgEAP3i/1AP+D/zxUlwWBXXQueOhAQzQStcN3p2UmVFK80C7QGH1aEBniOBPqhgRnsQB8P8KzRe+i/+YHCO+htQNPjdaB/G4D6hoWekFzQohfUxngSg4pglgGUsQ0ZR4jGSwAAAABJRU5ErkJggg=="
},{    
        label: "複製所有分頁標題+網址(左中右三鍵)",
        tooltiptext: "左鍵:BBCode\n中鍵:MD 格式\n右鍵:HTML Code",
        class: "copy",
        onclick: function(e) {
        var text = "",
            tabs = gBrowser.mTabContainer.childNodes,
            title,
            url;
        for (var i = 0, l = tabs.length, win; i < l; i++) {
            win = tabs&#91;i].linkedBrowser.contentWindow;
            title = trimTile(win.document.title);
            url = win.location.href;
            var formats = &#91;
                '[url=' + url + ']' + title + "[/url]" + "\n",
                '[' + title + '](' + url + ")" + "\n",
                '<a href="' + url + '">' + title + "</a><br>" + "\n"
            &#93;;
            text += formats&#91;event.button];
        }
        Cc&#91;"@mozilla.org/widget/clipboardhelper;1"].getService(Ci.nsIClipboardHelper).copyString(text);
        XULBrowserWindow.statusTextField.label = "複製:" + text;

        function trimTile(title) {
            &#91;/\s(·|::|-|—|»|\|)\s.*/i, /_[^\[\]【】]+$/].forEach(function(r) {
                title = title.replace(r, "");
            });
            return title;
        }
    }
},{    
        id: "context_closeTabs",
        label: "關閉重複分頁",
        insertBefore: "context_closeTabsToTheEnd",
        image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFOSURBVDhPrVI7S8NgFM2qo49B0E23blZR0M2f4B8RwR8gtOogKIKPQVBwcnKqk6iLOKhQaVVEsIkPdAhp0dR8RHPNufm+fLX2BXrgkJN7zzmBS4x/wb3RT9UstCfoeWSSCV3LI+O6wJ5O09vOHon8LQX+JylAY4YdPHULKAg48OWW+VmJwBNSBI0L3MwRWT2j5J3lokAI7zxHVt84fRyeNi8oLW2xNjsGybvIM6ExKy1vNy8AioubsiRJZmeSNWaMVgoAeyoVG6FjtFIgsjdkdg3FRmiRveZdwwJcWlyG4e5hfnfm1qk4v6FLwh08yi/juuB9N0PO7EoUTq9FXwwBjZk9s8Ae5ZdxXWD1jpH/9ErlgxMZ1XD3j8l/fGFP3QLwYWCCxNWdjGlghl2lV8Z/FoCFtgQ5qVX+I0FozKp9Mv67QBHHVAetRRn/CwzjG9UVHgUoOxULAAAAAElFTkSuQmCC",
        oncommand: function () {
               var num = gBrowser.browsers.length;
               var msg = "";
               for (var i = 0; i < num; i++)
               {
               var a = gBrowser.getBrowserAtIndex(i);
               try
               {
               for (var j = 0; j < num; j++)
               {
                if (j != i)
                {
                    var b = gBrowser.getBrowserAtIndex(j);
                    if (a.currentURI.spec == b.currentURI.spec)
                    {
                        //gBrowser.alert(a.currentURI.spec);
                        if (msg != "")
                            msg += "\n";
                        msg += b.currentURI.spec;
                        gBrowser.removeTab(gBrowser.tabContainer.childNodes&#91;j]);
                        num--;
                        j--;
                        //Not executing "i--" because there won't be tabs equal before the one on i
                    }
                }
                }
                }
                catch(e)
                {
                Components.utils.reportError(e);
                }
                }
                if (msg != ""){
                alert("\u95dc\u9589\u7684\u91cd\u8907\u5206\u9801:\n\n" + msg);
                }
                else
                alert("\u6c92\u6709\u91cd\u8907\u5206\u9801");
                }
            
}]);

創作回應

更多創作