阅读:2225回复:1
用了F17后TabPlus.uc.js新标签打开的部分失效了!求修改~
脚本功能:
1. 在新标签页代开书签/历史/搜索/主页/地址(F17后失效) 2. 在当前页打开小书签 3. 右键单击标签栏弹出“最近关闭的标签页” 4. 双击关闭当前标签页 5. 最简文字、链接拖拽 (和中键打开链接冲突) 自从用firefox开始就一直用这脚本了,真心放不下,求修改! 同时也希望增加一个跟随设置在侧边栏打开书签,不要同样在新标签打开! // ==UserScript== // @description Tab Plus 标签页增强 // @include chrome://browser/content/browser.xul // ==/UserScript== /* Open Bookmarks/History/Homepage/URL/Search in New Tab */ //地址栏、搜索栏、书签菜单、书签工具栏、历史菜单、主页按钮 eval("whereToOpenLink = " + whereToOpenLink.toString() .replace(/return "current";/g, (function() { var node = e && e.originalTarget; while (node) { switch (node.id) { case "bookmarksMenuPopup": case "goPopup": case "appmenu_bookmarksPopup": case "appmenu_historyMenupopup": case "personal-bookmarks": case "bookmarks-menu-button": case "historymenu_history": case "home-button": case "page-proxy-stack": case "go-button": case "urlbar-go-button": case "PopupAutoCompleteRichResult": case "searchbar": case "PopupAutoComplete": return "tab"; } node = node.parentNode; } return "current"; }).toString().replace(/^.*{|}$/g, "")) ); //总在当前标签页打开Bookmarklet eval("openLinkIn = " + openLinkIn.toString() .replace(/(?=if \(where == "save"\))/, 'if (url.substr(0, 11) == "javascript:") where = "current";') .replace(/(?=var loadInBackground)/, 'if (w.gBrowser.currentURI.spec == "about:blank" && !w.gBrowser.mCurrentTab.hasAttribute("busy")) where = "current";') ); //书签、历史侧边栏 document.getElementById("sidebar-box").addEventListener("load", function(event) { var document = event.target; if (document.location == "chrome://browser/content/bookmarks/bookmarksPanel.xul" || document.location == "chrome://browser/content/history/history-panel.xul") { eval("document.defaultView.whereToOpenLink = " + document.defaultView.whereToOpenLink.toString() .replace(/return "current";/g, 'return "tab";') ); eval("document.defaultView.openLinkIn = " + document.defaultView.openLinkIn.toString() .replace(/(?=if \(where == "save"\))/, 'if (url.substr(0, 11) == "javascript:") where = "current";') .replace(/(?=var loadInBackground)/, 'if (w.gBrowser.currentURI.spec == "about:blank" && !w.gBrowser.mCurrentTab.hasAttribute("busy")) where = "current";') ); } }, true); //地址栏回车键在新标签页打开,Alt+回车键在当前标签页打开 eval("gURLBar.handleCommand = " + gURLBar.handleCommand.toString() .replace(/aTriggeringEvent\s*&&\s*aTriggeringEvent.altKey/, "!($&)") .replace("aTriggeringEvent.preventDefault();", "") .replace("aTriggeringEvent.stopPropagation();", "") ); /* close tab on double click 双击关闭当前标签页 */ gBrowser.mTabContainer.addEventListener('dblclick', function (event){ if (event.target.localName == 'tab' && event.button == 0){ document.getElementById('cmd_close').doCommand(); } }, false); /* 右键单击标签栏弹出“最近关闭的标签页” */ (function TU_recentlyCloseTabsByRightClick() { var popup = document.getElementById("mainPopupSet").appendChild(document.createElement("menupopup")); popup.setAttribute("id", "undoCloseTabPopup"); popup.setAttribute("onpopupshowing", "this.populateUndoSubmenu();"); popup.setAttribute("tooltip", "bhTooltip"); popup.setAttribute("popupsinherittooltip", "true"); popup._ss = Cc["@mozilla.org/browser/sessionstore;1"].getService(Ci.nsISessionStore); popup._undoCloseMiddleClick = HistoryMenu.prototype._undoCloseMiddleClick; popup.populateUndoSubmenu = eval("(" + HistoryMenu.prototype.populateUndoSubmenu.toString().replace("undoMenu.firstChild", "this").replace(/.*undoMenu.*/g, "") + ")"); gBrowser.mTabContainer.addEventListener("contextmenu", function(event) { if (event.button == 2 && !event.ctrlKey && !event.altKey && !event.shiftKey && !event.metaKey && event.originalTarget.localName == "box") { document.getElementById("undoCloseTabPopup").openPopupAtScreen(event.screenX, event.screenY, true); event.preventDefault(); } }, false); })(); /* Drag n Go 最简单的拖拽 支持文字和链接 */ eval("handleDroppedLink = " + handleDroppedLink.toString() .replace(/.*loadURI.*/, "openNewTabWith(uri, null, postData.value, event, true, event.target.ownerDocument.documentURIObject);") ); for (let i = 0, b; b = gBrowser.browsers[i]; i++) { b.droppedLinkHandler = handleDroppedLink; } gBrowser.mPanelContainer.setAttribute("ondragover", "browserDragAndDrop.dragOver(event);"); |
|
|
1楼#
发布于:2012-12-08 23:37
我也是的,麻烦高手修改下了
|
|