<script type="text/javascript" src="<%=path %>/js/Keymap.js"></script>
//打开我的应用 快捷键组合
var docKeymap = new Keymap();
docKeymap.bind("ctrl_n", function()
{
newAppDialog();
});
Keymap.js
function Keymap(bindings) {
this.map = {};
if(bindings) {
for(var name in bindings) this.map[name.toLowerCase()] = bindings[name];
}
}
Keymap.keyCodeToFunctionKey = {
8 : "backspace", 9 : "tab", 13 : "return", 19 : "pause", 27 : "escape",
32 : "space", 33 : "pageup", 34 : "pagedown", 35 : "end", 36 : "home",
37 : "left", 38 : "up", 39 : "right", 40 : "down", 44 : "printscreen",
45 : "insert", 46 : "delete", 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"
};
Keymap.keyCodeToPrintableChar = {
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", 107 : "+", 109 : "-", 110 : ".", 188 : ",",
190 : ".", 191 : "/", 192 : "'", 219 : "[", 220 : "\\", 221 : "]",
222 : "\""
};
Keymap.prototype.bind = function(key, fn) {
this.map[key.toLowerCase()] = fn;
};
Keymap.prototype.unbind = function(key) {
delete this.map[key.toLowerCase()];
};
Keymap.prototype.install = function(element) {
var keymap = this;
function handler(event) {return keymap.dispatch(event);}
if(element.addEventListener) {
element.addEventListener("keydown", handler, false);
element.addEventListener("keypress", handler, false);
} else if(element.attachEvent) {
element.attachEvent("onkeydown", handler);
element.attachEvent("onkeypress", handler);
} else {
element.onkerdown = handler;
}
};
Keymap.prototype.dispatch = function(event) {
var e = event || window.event;
var modifiers = "";
var keyname = null;
if(e.type == "keydown") {
var keyCode = e.keyCode;
if(keyCode == 16 || keyCode == 17 || keyCode == 18) return;
keyname = Keymap.keyCodeToFunctionKey[keyCode];
if(!keyname && (e.altKey || e.ctrlKey)) keyname = Keymap.keyCodeToPrintableChar[keyCode];
if(keyname) {
if(e.altKey) modifiers += "alt_";
if(e.ctrlKey) modifiers += "ctrl_";
if(e.shiftKey) modifiers += "shift_";
} else {
return;
}
} else if(e.type == "keypress") {
if(e.altKey || e.ctrlKey) return;
if(e.charCode != undefined && e.charCode == 0) return;
var keyCode = e.charCode || e.keyCode;
keyname = String.fromCharCode(keyCode);
var lowercase = keyname.toLowerCase();
if(keyname != lowercase) {
keyname = lowercase;
modifiers += "shift_";
}
}
var fn = this.map[modifiers + keyname] || this.map["default"];
if(fn) {
var target = e.target || e.srcElement;
fn(target, modifiers + keyname, e);
if(e.stopPropagation) e.stopPropagation(); else e.cancelBubble = true;
if(e.preventDefault) e.preventDefault(); else e.returnValue = false;
return false;
}
};
分享到:
相关推荐
Js快捷键开源代码
js快捷键设置
KeyCode.js 是个跨浏览器的 JavaScript 常规键盘快捷键库。这个库围绕键盘对象来运行,还有一些 { Int code, bool shift, bool alt, bool ctrl } JavaScript 对象,记录用户按下的键盘对象。translate_event() 方法...
用javascript作一个快捷键
keyboard.backbone.js 依赖于 domEvents.backbone.js,domEvents.backbone.js 又依赖于 jQuery 和 Backbone。keyboard.backbone.js 主要是依赖 domEvents 的 keyDown 和 keyUp(也叫做:key:down 和 key:up),所以...
html网页中js快捷键,使用及类库js-hotkeys
keyboardjs.zip 添加快捷键组合的javascript类库 - keyboard.js 编辑
JavaScript+快捷键设置!!!也许不怎么完整!敬请指教!
这是一个强健的 Javascript 库用于捕获键盘输入和输入的组合键,它没有依赖,压缩只有只有(~3kb)。http://jaywcjlove.github.io/hotkeys/
Eclipse快捷键大全 javascript鼠标事件汇总
网页快捷键管理js辅助类库。能方便的管理快捷键。内有实例。js代码有说明
js 特效 html 特效 快捷键提交按钮 js 特效 html 特效 快捷键提交按钮
Shortcut.js 可以让你实现键盘快捷键和应用功能之间的绑定。 一些快捷键定义: Shortcut Event Name j shortcutNextItem k shortcutPrevItem n shortcutNewItem o ...
Shortcuts JS:一个 Node.js iOS 12 的快捷键创建器
Keymage 是用 JavaScript 实现的极小的处理快捷键绑定的库,它没有任何的依赖项,非常容易扩展,用户很容易就能使用它开发一个新的库。 标签:keymage
MouseTrap 是个简单的 JavaScript 库,用来处理键盘快捷键。Mousetrap 是个独立的库,没有任何扩展依赖,而且是个极小的 JavaScript 库,总大小就只有几kb。 支持的浏览器: Internet Explorer 6 Safari Fire...
UserKeyboardShortcuts 是重构了 mootools-more 提供的键盘类,提供给用户本地自定义的键盘...UserKeyboardShortcuts 使用 localStorage (对 cookie 失效)来存储用户所做的修改,当页面重新加载的时候恢复原状。
Reacthook用于在组件中使用键盘快捷键。_TypeScript_JavaScript_下载.zip
纯js操作div移动 伸缩,支持快捷键
快捷键提交按钮.rar快捷键提交按钮.rar快捷键提交按钮.rar快捷键提交按钮.rar快捷键提交按钮.rar快捷键提交按钮.rar