白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
阅读:2741回复:5

【已解决】如何阻止中键打开书签后关闭书签菜单

楼主#
更多 发布于:2014-03-21 22:27
RT
在28beta之前的所有版本,安装有TU或TMP的情况下,都能够中键点击书签打开标签后,书签菜单不关闭,这样能够快速地打开多个书签
但是升级到29beta之后,虽然也安装了TMP最新版,却无法实现同样的效果了

求助有没有什么设置和此行为相关,或者其他可能的解决方案?
因为这个操作长期使用,我现在不太清楚是TMP提供的还是firefox本身发生了变化


******************
反复开开关关标签实在很麻烦,我没耐心找原因了,直接扒开Stay-Open Menu提取了我需要的逻辑……
现发于此,以备有同样需求的朋友使用(下面不仅包含书签栏,也包括TMP的恢复标签列表)


// ==UserScript==
// @name           BookmarkMenuStayOpen
// @version        0.1.0.20140321
// @namespace      BookmarkMenuStayOpen@Byzod.Bookmark
// @author         custom.firefox.lady
// @modifier       Byzod
// @description    Stay open after click on bookmark menu
// ==/UserScript==
    
var BookmarkMenuStayOpen = function(){
        // derives new function from the fx in-built js one, but with the menu closing removed
        var origBMEH = BookmarksEventHandler.onClick.toString();
        // alert(origBMEH); //uncomment to quickly view what we got
        var menuClosingStr = "node.hidePopup();";
        if (origBMEH.indexOf("function BEH_onClick(aEvent, aView)") !== -1 && origBMEH.indexOf(menuClosingStr) !== -1) {
                origBMEH = origBMEH.replace("function BEH_onClick(aEvent, aView)", "");
                origBMEH = origBMEH.replace(menuClosingStr, "if (aEvent.button === 0) {node.hidePopup();}");
                BookmarksEventHandler.onClick = new Function("aEvent", "aView", origBMEH);
        }
        // alert(origBMEH); //uncomment to quickly view if we changed it successfully
            
        // Clear TMP undo close tab menu's handler
        if(TMP_ClosedTabs && TMP_ClosedTabs.checkForMiddleClick){
                origBMEH = TMP_ClosedTabs.checkForMiddleClick.toString();
                // alert(origBMEH); //uncomment to quickly view what we got
                menuClosingStr = "closeMenus(aEvent.target);";
                if (origBMEH.indexOf("function ct_checkForMiddleClick(aEvent)") !== -1 && origBMEH.indexOf(menuClosingStr) !== -1) {
                        origBMEH = origBMEH.replace("function ct_checkForMiddleClick(aEvent)", "");
                        origBMEH = origBMEH.replace(menuClosingStr, "{}");
                        TMP_ClosedTabs.checkForMiddleClick = new Function("aEvent", origBMEH);
                }
                // alert(origBMEH); //uncomment to quickly view if we changed it successfully
        }
}
    
window.setTimeout( BookmarkMenuStayOpen, 100 );
-いたんですか? -ええ、ずっと
alanfly
千年狐狸
千年狐狸
  • UID31035
  • 注册日期2009-11-10
  • 最后登录2024-05-02
  • 发帖数2766
  • 经验577枚
  • 威望1点
  • 贡献值128点
  • 好评度99点
  • 社区居民
  • 最爱沙发
  • 忠实会员
1楼#
发布于:2014-03-21 23:36
专门提供此项功能的扩展:Stay-Open Menu
没用29,不知道失效没。
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
2楼#
发布于:2014-03-22 10:33
alanfly:专门提供此项功能的扩展:Stay-Open Menu。
没用29,不知道失效没。
回到原帖
恩, 搜到了
不过现在又有点好奇了, 之前的此功能究竟是由哪个扩展提供的, 我还一直以为是fx自带特性
-いたんですか? -ええ、ずっと
alanfly
千年狐狸
千年狐狸
  • UID31035
  • 注册日期2009-11-10
  • 最后登录2024-05-02
  • 发帖数2766
  • 经验577枚
  • 威望1点
  • 贡献值128点
  • 好评度99点
  • 社区居民
  • 最爱沙发
  • 忠实会员
3楼#
发布于:2014-03-22 11:29
白左:恩, 搜到了
不过现在又有点好奇了, 之前的此功能究竟是由哪个扩展提供的, 我还一直以为是fx自带特性
回到原帖
TU上有看到这个功能,Stay-Open Menu也是历史悠久,08年更新到现在。

图片:md.png

白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
4楼#
发布于:2014-03-22 12:09
alanfly:TU上有看到这个功能,Stay-Open Menu也是历史悠久,08年更新到现在。回到原帖
原来是这样,谢谢!我用的是TMP最新稳定版0.4.1.3.1,可能还没针对29beta进行更新
-いたんですか? -ええ、ずっと
好人好梦
火狐狸
火狐狸
  • UID26935
  • 注册日期2008-11-06
  • 最后登录2024-04-26
  • 发帖数254
  • 经验89枚
  • 威望0点
  • 贡献值24点
  • 好评度4点
  • 社区居民
5楼#
发布于:2014-10-25 21:37
36a1测试有效,多谢分享!
游客

返回顶部