阅读:4833回复:4
keyconfig.uc.js脚本如何自定义快捷键啊?
keyconfig.uc.js脚本如何自定义快捷键啊?弄了好久,1个也没成功过,各位大侠帮帮忙。指点下,谢了先~!!!
下面是该脚本代码: // ==UserScript== // @name keyconfig_Modoki.uc.js // @namespace http://d.hatena.ne.jp/Griever/ // @include main // ==/UserScript== (function(){ var keymap = { '8':'backspace','9':'tab','12':'tenkey5','13':'enter','16':'shift','17':'ctrl','18':'alt', '19':'pausebreak','20':'shift+capslock','27':'esc','32':'space', '33':'pageup','34':'pagedown','35':'end','36':'home', '37':'left','38':'up','39':'right','40':'down','45':'insert','46':'delete', '48':'0','49':'1','50':'2','51':'3','52':'4','53':'5','54':'6','55':'7','56':'8','57':'9','59':':','61':';', '65':'a','66':'b','67':'c','68':'d','69':'e','70':'f','71':'g','72':'h','73':'i', '74':'j','75':'k','76':'l','77':'m','78':'n','79':'o','80':'p','81':'q','82':'r', '83':'s','84':'t','85':'u','86':'v','87':'w','88':'x','89':'y','90':'z', '91':'leftwindows','92':'rightwindows', '96':'0','97':'1','98':'2','99':'3','100':'4','101':'5','102':'6','103':'7','104':'8','105':'9', '106':'*','107':'+','109':'-','110':'.','111':'/', '112':'f1','113':'f2','114':'f3','115':'f4','116':'f5','117':'f6', '118':'f7','119':'f8','120':'f9','121':'f10','122':'f11','123':'f12', '144':'numlock','145':'scrolllock', '188':',','190':'.','191':'/','192':'@','219':'[','220':'\\','221':']','222':'^','226':'\\', '240':'capslock', }; function $(id){ return document.getElementById(id)} function keyconfig(e){ if (/^(input|textarea|select|textbox)$/i.test(e.target.localName)) return; var keycode = e.keyCode; if (keycode >= 16 && keycode <= 18) return; var command = keymap[keycode] + (e.ctrlKey?'+ctrl':'') + (e.shiftKey?'+shift':'') + (e.altKey?'+alt':''); /* キーを小文字、スペース無し、+で連結、ctrl・shift・altの順で 小写关键字+ctrl・shift・alt+命令的顺序添加 */ switch(command){//uc.js脚本默认的快捷键设置 case 'z' : $("Browser:Back").doCommand(); break;//后退 case 'x' : $("Browser:Forward").doCommand(); break;//前进 case '+' : $("cmd_fullZoomEnlarge").doCommand(); break;//缩放 - 放大 case '-' : $("cmd_fullZoomReduce").doCommand(); break;//缩放 - 缩小 case '.' : gFindBar.startFind(1); break; case ',' : gFindBar.startFind(2); break; case '1' : gBrowser.mTabContainer.advanceSelectedTab(-1, true); break; case '2' : gBrowser.mTabContainer.advanceSelectedTab(+1, true); break; case 'h' : openLocation(); break; case 'f2' : openDialog("chrome://browser/content/openLocation.xul", "_blank", "chrome,modal,titlebar", window); break; case '': $("History:UndoCloseTab").doCommand(); break;//撤销已关闭标签页 case 'f12+ctrl': openPreferences(); break;//firefox选项 //keyconfig扩展的快捷键设置和用户自定义设置添加到下面: case 'j': LDRizeModoki.goToNextLink(); break;//_goToNextLink case 'k': LDRizeModoki.goToPrevLink(); break;//_goToPrevLink case 'f3+shift': gFindBar.onFindAgainCommand(true); break;//开启查找栏 case 'backspace+shift': BrowserHandleShiftBackspace(); break;//帮助内容 case 'f1': openHelpLink('firefox-help'); break;//帮助内容 case 'g+ctrl': gFindBar.onFindAgainCommand(false); break;//查找下一个 case 'f3': gFindBar.onFindAgainCommand(false); break;//查找下一个 case '0': FullZoom.reset(); break;//缩放 - 重置 case 'f5': if (event.shiftKey) BrowserReloadSkipCache(); else BrowserReload(); break;//刷新 case "t+shift+ctrl": undoCloseTab(); break;//撤销关闭标签页 case "r+ctrl": if (event.shiftKey) BrowserReloadSkipCache(); else BrowserReload(); break;//重新载入 case "f5+ctrl": BrowserReloadSkipCache(); break;//重新载入(忽略缓存) case "": var tab = gBrowser.mCurrentTab.boxObject.previousSibling; if(tab) gBrowser.removeTab(tab); break;//关闭左边标签页 // default: return; } e.preventDefault(); } gBrowser.mPanelContainer.addEventListener('keydown', keyconfig, false); })(); |
|
1楼#
发布于:2009-06-07 21:32
小写关键字+ctrl・shift・alt+命令的顺序添加
这不是有么,命令代码写在case里。 |
|
2楼#
发布于:2009-06-07 21:32
|
|
3楼#
发布于:2009-06-07 21:32
本人实验成功。alt+a打开 附加组件窗口。
代码如附件. |
|
|
4楼#
发布于:2009-06-07 21:32
case "z+ctrl": gBrowser.undoRemoveTab(); break;//撤销关闭标签页
case "f5+ctrl": BrowserReloadSkipCache(); break;//重新载入(忽略缓存) case 'f4': Application.restart(); baeak;//重启FF case 's+alt': Components.classes["@mozilla.org/file/directory_service;1"]. getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsILocalFile).launch(); break;//打开配置文件夹 case 'a+ctrl+shift': toOpenWindowByType('Add-ons:manager', 'chrome://mozapps/content/extensions/extensions.xul'); break;//附加组件对话框 case 'w+alt': Cc['@mozilla.org/browser/browserglue;1'].getService(Ci.nsIBrowserGlue).sanitize(window); TMP_Sanitizer.tryToSanitize(); break;//清空临时文件 case "o+ctrl+shift": openPreferences(); break;//工具-选项对话框 case "c+alt":var tab = gBrowser.mCurrentTab; gBrowser.removeTab(tab); break;//关闭当前标签 |
|