|
阅读:5303回复: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;//关闭当前标签 |
|