b938cn
小狐狸
小狐狸
  • UID37889
  • 注册日期2011-11-30
  • 最后登录2016-02-25
  • 发帖数3
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:2225回复:1

用了F17后TabPlus.uc.js新标签打开的部分失效了!求修改~

楼主#
更多 发布于:2012-12-08 23:37
脚本功能:

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);");
附件名称/大小 下载次数 最后更新
TabPlus.uc.rar (2KB)  21 2012-12-08 23:36
emiltsao
小狐狸
小狐狸
  • UID22522
  • 注册日期2008-01-03
  • 最后登录2021-01-02
  • 发帖数37
  • 经验16枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2012-12-08 23:37
我也是的,麻烦高手修改下了
游客

返回顶部