hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
阅读:3770回复:15

有没有单键关闭当前标签页的扩展(内详)

楼主#
更多 发布于:2014-05-22 15:32
我以前是装Super Tab Mode的,有提供这个功能,但是不知为什么重启Firefox后关闭前保留的标签页顺序会被打乱。

换了Firefox29之后,我改用 Tab Utilities ,发现其没有在当前标签页右侧新开标签页的功能,有加了个 Tab Improvement Lite 来实现这功能。现在这两个扩展之间兼容相当良好。

小插曲:曾经在某次Firefox升级后,选择标签页会自动激活菜单而基本等于被废了的 Tab History Menu ,我是没法用但是又对其功能恋恋不舍,后来搜索发现居然 Tab Utilities 内置了这个功能,嘿,埋得真够深的,现在基本圆满了。直到……

现在发现缺少了单键关闭当前标签页的功能!!
我知道Ctrl-W、双击和中键点击标签页,但是我只想要一个键!!

Tab Mix Plus 在Firefox29上装上后,居然恢复关闭的标签页功能按钮是灰的,永永远远是灰的!装上后即卸!!
Super Tab Mode?我又留恋 Tab Utilities 的功能。
在AMO逛了一圈,能找到都是这些大而全的标签页扩展,没个简简单单提供单键功能的扩展吗?
呃,还有个叫 Key config 【https://addons.mozilla.org/zh-CN/firefox/addon/key-config/】的,但是下面的评论都说其功能不行……

-----------
嗯,可能我没说清楚……
我需要的“一键”是键盘的一键,不是鼠标,我上面已提到中键点击对我来说已经不能满足了。

现在选用了 keyconfig 来自定义。
cinhoo
狐狸大王
狐狸大王
  • UID31676
  • 注册日期2010-01-21
  • 最后登录2019-01-08
  • 发帖数330
  • 经验15枚
  • 威望0点
  • 贡献值0点
  • 好评度6点
  • 社区居民
  • 忠实会员
1楼#
发布于:2014-05-30 17:30
自用的KeyChanger.uc.js
var KeyChanger = {
    keys : {
        // 重启浏览器
        'p+ctrl' : 'Services.appinfo.invalidateCachesOnRestart() || Application.restart();',
        // 打开Profile
        '[+ctrl' : 'Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsILocalFile).reveal();',
        // 打开Chrome
        ']+ctrl' : 'Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("UChrm", Components.interfaces.nsILocalFile).reveal();',
        // 转到页首
        'q+ctrl' : 'goDoCommand("cmd_scrollTop");',
        // 转到页尾
        'w+ctrl' : 'goDoCommand("cmd_scrollBottom");',
        // 关闭标签页
        'x+ctrl' : 'gBrowser.removeCurrentTab();',
        // 撤销关闭标签页
        'z+ctrl' : 'undoCloseTab();',
        // 刷新标签页/frame
        'r+ctrl' : 'KeyChanger.reloadFrame();',
        // 强制刷新标签页/frame
        'r+ctrl+shift' : 'KeyChanger.reloadFrame(true);',
        // 打开Error Console
        'j+shift' : 'toJavaScriptConsole();'
    },
    reloadFrame: function(skipCache) {
        let prevDoc, doc = document;
        while (doc) {
            prevDoc = doc;
            doc = doc.activeElement.contentDocument
        }
        prevDoc.location.reload(skipCache);
    },
    makeKeyset : function() {
        var keys = this.makeKeys();
        if (!keys)
            return;
 
        var keyset = document.getElementById('keychanger-keyset');
        if (keyset)
            keyset.parentNode.removeChild(keyset);
        keyset = document.createElement('keyset');
        keyset.setAttribute('id', 'keychanger-keyset');
        keyset.appendChild(keys);
 
        var df = document.createDocumentFragment();
        Array.slice(document.getElementsByTagName('keyset')).forEach(function(elem) {
            df.appendChild(elem);
        });
        var insPos = document.getElementById('mainPopupSet');
        insPos.parentNode.insertBefore(keyset, insPos);
        insPos.parentNode.insertBefore(df, insPos);
    },
    makeKeys : function(){
        if (!this.keys)
            return null;
 
        var dFrag = document.createDocumentFragment();
 
        Object.keys(this.keys).forEach(function(n) {
            let keyString = n.toUpperCase().split("+");
            let modifiers = "", key, keycode, k;
 
            for (let i = 0, l = keyString.length; i < l; i++) {
                k = keyString[i];
                switch (k) {
                    case "CTRL":
                    case "CONTROL":
                    case "ACCEL":
                        modifiers += "accel,";
                        break;
                    case "SHIFT":
                        modifiers += "shift,";
                        break;
                    case "ALT":
                    case "OPTION":
                        modifiers += "alt,";
                        break;
                    case "META":
                    case "COMMAND":
                        modifiers += "meta,";
                        break;
                    case "OS":
                    case "WIN":
                    case "WINDOWS":
                    case "HYPER":
                    case "SUPER":
                        modifiers += "os,";
                        break;
                    case "":
                        key = "+";
                        break;
                    case "BACKSPACE":
                    case "BKSP":
                    case "BS":
                        keycode = "VK_BACK";
                        break;
                    case "RET":
                    case "ENTER":
                        keycode = "VK_RETURN";
                        break;
                    case "ESC":
                        keycode = "VK_ESCAPE";
                        break;
                    case "PAGEUP":
                    case "PAGE UP":
                    case "PGUP":
                    case "PUP":
                        keycode = "VK_PAGE_UP";
                        break;
                    case "PAGEDOWN":
                    case "PAGE DOWN":
                    case "PGDN":
                    case "PDN":
                        keycode = "VK_PAGE_DOWN";
                        break;
                    case "TOP":
                        keycode = "VK_UP";
                        break;
                    case "BOTTOM":
                        keycode = "VK_DOWN";
                        break;
                    case "INS":
                        keycode = "VK_INSERT";
                        break;
                    case "DEL":
                        keycode = "VK_DELETE";
                        break;
                    default:
                        if (k.length === 1) {
                            key = k;
                        } else if (k.indexOf("VK_") === -1) {
                            keycode = "VK_" + k;
                        } else {
                            keycode = k;
                        }
                        break;
                }
            }
            let elem = document.createElement('key');
            if (modifiers !== '')
                elem.setAttribute('modifiers', modifiers.slice(0, -1));
            if (key)
                elem.setAttribute('key', key);
            else if (keycode)
                elem.setAttribute('keycode', keycode);
 
            let cmd = this.keys[n];
            switch (typeof cmd) {
            case 'function':
                elem.setAttribute('oncommand', '(' + cmd.toSource() + ').call(this, event);');
                break;
            case 'object':
                Object.keys(cmd).forEach(function(a) {
                    elem.setAttribute(a, cmd[a]);
                }, this);
                break;
            default:
                elem.setAttribute('oncommand', cmd);
            }
            dFrag.appendChild(elem);
        }, this);
        return dFrag;
    }
};
 
KeyChanger.makeKeyset();
【 在 hailongchang (novice) 的大作中提到: 】 上了Firefox这艘贼船就很难再下来了,我当年是报着试一试的心态用了下Firefox,当然包括当时一些如日中天的插件,这一用就抛弃IE了。几年过后,发现IE8也还不错,但是就是怎么都用不管,Firefox连同上面的那些插件已经彻底绑架了我的习惯,用别的浏览器觉得巨不爽,包括Chrome
alanfly
千年狐狸
千年狐狸
  • UID31035
  • 注册日期2009-11-10
  • 最后登录2024-05-02
  • 发帖数2766
  • 经验577枚
  • 威望1点
  • 贡献值128点
  • 好评度99点
  • 社区居民
  • 最爱沙发
  • 忠实会员
2楼#
发布于:2014-05-29 17:47
鼠标手势是方便,但是久了右手腕会酸痛。
可以把关闭标签页、切换到上一个标签、下一个标签、聚焦到地址栏之类的常用操作都绑定到左手键盘区,大大减轻右手负担。
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
3楼#
发布于:2014-05-29 14:57
qweszxc:键盘Alt-W无用无法关闭当前标签页,我是Ctrl+W管用能关闭但左手指很别扭。回到原帖
我顶楼都没写错,8楼就写错了……
的确是Ctrl-W,不是Alt……
qweszxc
千年狐狸
千年狐狸
  • UID39616
  • 注册日期2013-06-24
  • 最后登录2022-10-14
  • 发帖数1021
  • 经验929枚
  • 威望0点
  • 贡献值1012点
  • 好评度68点
  • 社区居民
  • 忠实会员
4楼#
发布于:2014-05-29 13:13
hzhbest:手势我也用,Alt-W也用,但在开了一系列标签页而且每个都只是简单浏览一下就关闭(例如新闻)的话,单键关闭就会省很多时间和手力。回到原帖
键盘Alt-W无用无法关闭当前标签页,我是Ctrl+W管用能关闭但左手指很别扭。
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
5楼#
发布于:2014-05-29 08:55
qweszxc:关闭当前标签页在页面任意处关闭赶脚鼠标方便,键盘懒得动,我一般双击鼠标右键在页面任意处关闭当前标签页尽管可以设置一键鼠标关闭。回到原帖
试了下双击右键,感觉很别扭,可能就是从来没锻炼过……
主要是我比较希望用左手配合,这样右手就不用那么累
qweszxc
千年狐狸
千年狐狸
  • UID39616
  • 注册日期2013-06-24
  • 最后登录2022-10-14
  • 发帖数1021
  • 经验929枚
  • 威望0点
  • 贡献值1012点
  • 好评度68点
  • 社区居民
  • 忠实会员
6楼#
发布于:2014-05-28 18:42
关闭当前标签页在页面任意处关闭赶脚鼠标方便,键盘懒得动,我一般双击鼠标右键在页面任意处关闭当前标签页尽管可以设置一键鼠标关闭。
Nick138
小狐狸
小狐狸
  • UID38865
  • 注册日期2012-05-22
  • 最后登录2019-06-07
  • 发帖数10
  • 经验27枚
  • 威望0点
  • 贡献值20点
  • 好评度0点
7楼#
发布于:2014-05-26 23:25
hzhbest:手势我也用,Alt-W也用,但在开了一系列标签页而且每个都只是简单浏览一下就关闭(例如新闻)的话,单键关闭就会省很多时间和手力。回到原帖
我是鼠标党,连按键盘也懒得动,所以就比较依赖手势了,呵呵
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
8楼#
发布于:2014-05-26 09:32
Nick138:手势划动关闭也比较方便吧回到原帖
手势我也用,Alt-W也用,但在开了一系列标签页而且每个都只是简单浏览一下就关闭(例如新闻)的话,单键关闭就会省很多时间和手力。
Nick138
小狐狸
小狐狸
  • UID38865
  • 注册日期2012-05-22
  • 最后登录2019-06-07
  • 发帖数10
  • 经验27枚
  • 威望0点
  • 贡献值20点
  • 好评度0点
9楼#
发布于:2014-05-24 22:46
手势划动关闭也比较方便吧
pein0saga
狐狸大王
狐狸大王
  • UID25456
  • 注册日期2008-07-17
  • 最后登录2020-05-16
  • 发帖数305
  • 经验93枚
  • 威望0点
  • 贡献值38点
  • 好评度5点
  • 社区居民
  • 忠实会员
10楼#
发布于:2014-05-24 19:47
vimfx
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
11楼#
发布于:2014-05-23 09:37
alanfly:快捷键类扩展都行吧,keyconfig试试原版的,作者没上传到amo,以前用过记得可以的:keyconfig.xpi
还有个论坛里介绍过的:Customizable Shortcuts
还有个esc关闭当前标签的扩展,基于dorando...
回到原帖
多谢多谢,我用keyconfig了(虽然有点小题大做的感觉)。
jxcangel
火狐狸
火狐狸
  • UID3884
  • 注册日期2005-03-11
  • 最后登录2016-09-01
  • 发帖数112
  • 经验117枚
  • 威望0点
  • 贡献值8点
  • 好评度3点
  • 社区居民
  • 忠实会员
12楼#
发布于:2014-05-22 21:56
你这个单键……右键关闭标签页可以吗?这个在Tab Utilits里面的鼠标配置中就可以配置,标签栏上右键关闭标签页
alanfly
千年狐狸
千年狐狸
  • UID31035
  • 注册日期2009-11-10
  • 最后登录2024-05-02
  • 发帖数2766
  • 经验577枚
  • 威望1点
  • 贡献值128点
  • 好评度99点
  • 社区居民
  • 最爱沙发
  • 忠实会员
13楼#
发布于:2014-05-22 18:56
快捷键类扩展都行吧,keyconfig试试原版的,作者没上传到amo,以前用过记得可以的:keyconfig.xpi
还有个论坛里介绍过的:Customizable Shortcuts
还有个esc关闭当前标签的扩展,基于dorando的keyconfig开发的:EscCloseTab
文科
千年狐狸
千年狐狸
  • UID39959
  • 注册日期2013-10-17
  • 最后登录2019-07-27
  • 发帖数2069
  • 经验1328枚
  • 威望4点
  • 贡献值340点
  • 好评度256点
  • 最爱沙发
  • 社区居民
  • 忠实会员
14楼#
发布于:2014-05-22 16:50
上一页
游客

返回顶部