jxka8
小狐狸
小狐狸
  • UID15543
  • 注册日期2006-11-06
  • 最后登录2011-07-18
  • 发帖数13
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:4839回复:4

keyconfig.uc.js脚本如何自定义快捷键啊?

楼主#
更多 发布于:2009-06-07 21:32
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);
})();
jxka8
小狐狸
小狐狸
  • UID15543
  • 注册日期2006-11-06
  • 最后登录2011-07-18
  • 发帖数13
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2009-06-07 21:32
web123lai:小写关键字+ctrl・shift・alt+命令的顺序添加
这不是有么,命令代码写在case里。
回到原帖


可以示范一个我看下吗?我好有个范本,用我上面的代码,我对这东西没什么概念,不懂啊~!!!
游客

返回顶部