|
阅读:2704回复: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
我也是的,麻烦高手修改下了
|
|