`
chengyu2099
  • 浏览: 472916 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

js 快捷键 使用

 
阅读更多
<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快捷键开源代码

    使用这样的开源库,开发者可以轻松地在JavaScript应用程序中添加自定义快捷键,提高用户的工作效率。例如,你可以创建一个编辑器应用,使用`hotkeys`库为常见的编辑操作(如复制、粘贴、撤销、重做)分配快捷键,使...

    js快捷键设置

    - **WebStorm**:WebStorm 是专为JavaScript开发设计的IDE,它内置了许多常用的JS快捷键,如`Alt + Insert` 生成构造函数或getter/setter,`Alt + Enter` 显示代码提示,`Ctrl + Shift + N` 快速打开文件。...

    JavaScript快捷键库keycode.js.zip

    KeyCode.js 是个跨浏览器的 JavaScript 常规键盘快捷键库。这个库围绕键盘对象来运行,还有一些 { Int code, bool shift, bool alt, bool ctrl } JavaScript 对象,记录用户按下的键盘对象。translate_event() 方法...

    javascript快捷键

    根据提供的文件信息,我们可以分析并总结出与“javascript快捷键”相关的知识点,这些知识点主要集中在如何使用JavaScript来创建和管理快捷键功能上。 ### JavaScript快捷键实现原理 在Web开发中,有时候我们需要...

    js设置快捷键

    "js设置快捷键"这个主题正是关于如何在JavaScript中实现这一功能。 Hotkeys 是一个强大的JavaScript库,专门用于捕获键盘输入和组合键。它体积小巧,压缩后仅有约3kb,这意味着即使在资源有限的环境中,也能快速、...

    添加快捷键组合的javascript类库 - keyboard.js 编辑

    `keyboard.js` 是一个JavaScript库,它允许开发者轻松地为Web应用添加自定义的键盘快捷键组合。这个库的核心功能是监听用户输入的键盘事件,并根据预设的组合键进行相应的操作,从而提升用户交互体验,尤其是对于...

    客户端快捷键管理类库(js)

    这个名为"js"的类库专注于快捷键的管理和控制,使得开发者能够轻松地为他们的网页应用程序添加自定义快捷键功能。下面我们将深入探讨这个类库的核心特性、使用方法以及如何通过提供的"keyControlDemo"示例来理解和...

    JavaScript快捷键库keyboard.backbone.js.zip

    keyboard.backbone.js 依赖于 domEvents.backbone.js,domEvents.backbone.js 又依赖于 jQuery 和 Backbone。keyboard.backbone.js 主要是依赖 domEvents 的 keyDown 和 keyUp(也叫做:key:down 和 key:up),所以...

    js-hotkeys(html js 快捷键)

    2. **绑定快捷键**:通过JavaScript代码,使用`bind`方法将快捷键与函数绑定。例如,设置`Ctrl+S`为保存操作: ```javascript $(document).bind('keydown', 'ctrl+s', function() { console.log('快捷键 Ctrl+S ...

    JavaScript+快捷键设置

    在网页开发中,为了提高用户体验以及增加网页的安全性,开发者常常会使用JavaScript来控制或监听用户的键盘操作,比如禁用某些快捷键的功能或者添加自定义行为。根据提供的代码示例与描述,“JavaScript+快捷键设置...

    Eclipse快捷键大全 javascript鼠标事件汇总

    了解并熟练使用这些Eclipse快捷键和JavaScript鼠标事件,能让你在开发过程中如鱼得水,提高编程效率,减少不必要的鼠标移动和点击,从而专注于更重要的逻辑实现。同时,文档`javascript鼠标事件汇总.doc`和`Eclipse...

    js前端实现的组合快捷键demo(类似QQ截图快捷键等)

    功能:通过JavaScript代码,实现用户自定义的组合快捷键功能。用户可以在网页上设置多个快捷键组合,当按下这些组合时,会触发相应的事件或执行特定的操作。 能做到什么: 1. 提高交互性:通过组合快捷键,用户可以...

    js keycode快捷键大全 并附有简单使用说明

    在本文中,我们将详细介绍JavaScript中与键盘事件相关的keycode值及其使用方法,为了方便大家在实际开发中快速查找和使用。在JavaScript中,keycode值是对应于键盘上各个按键的数字标识,当我们使用键盘事件监听函数...

    eclipse快捷键使用以及一些小机灵

    ### Eclipse 快捷键使用及技巧详解 #### 一、Eclipse 常用快捷键概览 在软件开发过程中,提升工作效率对于程序员来说至关重要。Eclipse 作为一款流行的集成开发环境(IDE),提供了丰富的快捷键功能来帮助开发者...

    Reacthook用于在组件中使用键盘快捷键。_TypeScript_JavaScript_下载.zip

    在给定的压缩包“Reacthook用于在组件中使用键盘快捷键.TypeScript_JavaScript_下载.zip”中,我们可以推测它包含了一个名为“react-hotkeys-hook”的库,这个库专门用于在React组件中处理键盘快捷键。接下来,我们...

    js 特效 html 特效 快捷键提交按钮

    js 特效 html 特效 快捷键提交按钮 js 特效 html 特效 快捷键提交按钮

    Node.js-ShortcutsJS一个Node.jsiOS12的快捷键创建器

    3. **编译和导出**:完成脚本编写后,使用`Shortcuts JS`提供的命令行工具将JavaScript代码转换为可导入到iOS设备上的快捷指令文件。这个过程可能涉及到JSON格式的处理,因为iOS的快捷指令是以JSON格式存储的。 4. ...

    火狐浏览器快捷键

    这里不仅可以看到JavaScript错误和警告信息,还可以执行简单的JS代码测试,是调试脚本错误的有效手段。 ### 8. Ctrl+Shift+P:调用命令面板 通过`Ctrl+Shift+P`,火狐浏览器会显示一个命令面板,用户可以输入命令...

    JavaScript快捷键库ShortcutJS.zip

    Shortcut.js 可以让你实现键盘快捷键和应用功能之间的绑定。 一些快捷键定义: Shortcut Event Name j shortcutNextItem k shortcutPrevItem n shortcutNewItem o ...

    javascript经典特效---快捷键提交按钮.rar

    在JavaScript编程领域中,快捷键提交按钮是一种常见的交互设计,它可以极大地提高用户的操作效率。本文将深入探讨如何利用JavaScript实现这种功能,同时介绍相关的编程概念和技术。 首先,我们需要理解JavaScript的...

Global site tag (gtag.js) - Google Analytics