jxka8
小狐狸
小狐狸
  • UID15543
  • 注册日期2006-11-06
  • 最后登录2011-07-18
  • 发帖数13
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:4833回复: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);
})();
web123lai
千年狐狸
千年狐狸
  • UID8036
  • 注册日期2005-08-17
  • 最后登录2019-05-01
  • 发帖数4225
  • 经验13枚
  • 威望1点
  • 贡献值20点
  • 好评度10点
  • 社区居民
1楼#
发布于:2009-06-07 21:32
小写关键字+ctrl・shift・alt+命令的顺序添加
这不是有么,命令代码写在case里。
jxka8
小狐狸
小狐狸
  • UID15543
  • 注册日期2006-11-06
  • 最后登录2011-07-18
  • 发帖数13
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2009-06-07 21:32
web123lai:小写关键字+ctrl・shift・alt+命令的顺序添加
这不是有么,命令代码写在case里。
回到原帖


可以示范一个我看下吗?我好有个范本,用我上面的代码,我对这东西没什么概念,不懂啊~!!!
foxfirefox
千年狐狸
千年狐狸
  • UID16837
  • 注册日期2007-01-27
  • 最后登录2019-10-22
  • 发帖数1409
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
3楼#
发布于:2009-06-07 21:32
本人实验成功。alt+a打开 附加组件窗口。
代码如附件.
附件名称/大小 下载次数 最后更新
keyconfig_Modoki.uc.js.zip (2KB)  116 2010-04-12 16:17
loveqianool
狐狸大王
狐狸大王
  • UID29223
  • 注册日期2009-06-19
  • 最后登录2022-01-29
  • 发帖数308
  • 经验153枚
  • 威望0点
  • 贡献值92点
  • 好评度2点
  • 社区居民
  • 忠实会员
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;//关闭当前标签
游客

返回顶部