hotkeys-js
Advanced tools
Comparing version 2.0.0 to 2.0.1
/*! | ||
* hotkeys-js v2.0.0 | ||
* hotkeys-js v2.0.1 | ||
* A simple micro-library for defining and dispatching keyboard shortcuts. It has no dependencies. | ||
@@ -132,3 +132,3 @@ * | ||
function dispatch(event) { | ||
var key = event.keyCode, scope, asterisk = _handlers["*"]; | ||
var key = event.keyCode || e.which || e.charCode, scope, asterisk = _handlers["*"]; | ||
//搜集绑定的键 | ||
@@ -255,3 +255,3 @@ if (_downKeys.indexOf(key) === -1) _downKeys.push(key); | ||
function clearModifier(event) { | ||
var key = event.keyCode, i = _downKeys.indexOf(key); | ||
var key = event.keyCode || e.which || e.charCode, i = _downKeys.indexOf(key); | ||
if (i >= 0) _downKeys.splice(i, 1); | ||
@@ -258,0 +258,0 @@ //修饰键 shiftKey altKey ctrlKey (command||metaKey) 清除 |
@@ -1,3 +0,3 @@ | ||
/*! hotkeys-js v2.0.0 | (c) 2016 | https://github.com/jaywcjlove/hotkeys.git */ | ||
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n;n="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,n.hotkeys=e()}}(function(){function e(e){m=e||"all"}function n(){return m||"all"}function t(e,n,t){e.addEventListener?e.addEventListener(n,t,!1):e.attachEvent&&e.attachEvent("on"+n,function(){t(window.event)})}function o(e){return"string"==typeof e&&(e=E(e)),k.indexOf(e)!==-1}function r(e){return k.slice(0)}function i(e){var t,o=e.keyCode,r=C["*"];if(k.indexOf(o)===-1&&k.push(o),93!==o&&224!==o||(o=91),o in b){b[o]=!0;for(var i in w)w[i]===o&&(h[i]=!0);if(!r)return}for(var l in b)b[l]=e[x[l]];if(h.filter.call(this,e)){if(t=n(),r)for(a=0;a<r.length;a++)r[a].scope===t&&f(e,r[a],t);if(o in C)for(var a=0;a<C[o].length;a++)f(e,C[o][a],t)}}function f(e,n,t){var o;if(n.scope===t||"all"===n.scope){o=n.mods.length>0;for(var r in b)(!b[r]&&n.mods.indexOf(+r)>-1||b[r]&&n.mods.indexOf(+r)===-1)&&(o=!1);(0!==n.mods.length||b[16]||b[18]||b[17]||b[91])&&!o&&"*"!==n.shortcut||n.method(e,n)===!1&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0))}}function l(e,t){for(var o,r,i=d(e),f=[],l=0;l<i.length;l++){if(o=i[l].split("+"),o.length>1&&(f=s(o)),e=o[o.length-1],e=E(e),void 0===t&&(t=n()),!C[e])return;for(var a=0;a<C[e].length;a++)r=C[e][a],r.scope===t&&u(r.mods,f)&&(C[e][a]={})}}function a(e){var n,t,o;for(n in C)for(t=C[n],o=0;o<t.length;)t[o].scope===e?t.splice(o,1):o++}function u(e,n){if(e.length!==n.length)return!1;for(var t=0;t<e.length;t++)if(e[t]!==n[t])return!1;return!0}function c(e){var n=(e.target||e.srcElement).tagName;return!("INPUT"===n||"SELECT"===n||"TEXTAREA"===n)}function s(e){for(var n=e.slice(0,e.length-1),t=0;t<n.length;t++)n[t]=w[n[t]];return n}function d(e){var n;return e=e.replace(/\s/g,""),n=e.split(","),""===n[n.length-1]&&(n[n.length-2]+=","),n}function p(e){var n=e.keyCode,t=k.indexOf(n);if(t>=0&&k.splice(t,1),93!==n&&224!==n||(n=91),n in b){b[n]=!1;for(var o in w)w[o]===n&&(h[o]=!1)}}function h(e,n,t){var o=d(e),r=[],i=0;for(void 0===t&&(t=n,n="all");i<o.length;i++)e=o[i].split("+"),r=[],e.length>1&&(r=s(e),e=[e[e.length-1]]),e=e[0],e="*"===e?"*":E(e),e in C||(C[e]=[]),C[e].push({shortcut:o[i],scope:n,method:t,key:o[i],mods:r})}Array.prototype.indexOf||(Array.prototype.indexOf=function(e){for(var n=0;n<this.length;n++)if(this[n]===e)return n;return-1});for(var g,v=navigator.userAgent.toLowerCase().indexOf("firefox")>0,y={backspace:8,tab:9,clear:12,enter:13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,home:36,end:35,pageup:33,pagedown:34,",":188,".":190,"/":191,"`":192,"-":v?173:189,"=":v?61:187,";":v?59:186,"'":222,"[":219,"]":221,"\\":220},m="all",w={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":v?224:91,command:v?224:91},k=[],x={16:"shiftKey",18:"altKey",17:"ctrlKey"},b={16:!1,18:!1,17:!1},E=function(e){return y[e]||e.toUpperCase().charCodeAt(0)},C={},O=1;O<20;O++)y["f"+O]=111+O;x[v?224:91]="metaKey",b[v?224:91]=!1,t(document,"keydown",function(e){i(e)}),t(document,"keyup",function(e){p(e)}),g={setScope:e,getScope:n,deleteScope:a,getPressedKeyCodes:r,isPressed:o,filter:c,unbind:l};for(var A in g)h[A]=g[A];var K=window.hotkeys;return h.noConflict=function(e){return e&&window.hotkeys===h&&(window.hotkeys=K),h},window.hotkeys=h,h}); | ||
/*! hotkeys-js v2.0.1 | (c) 2016 | https://github.com/jaywcjlove/hotkeys.git */ | ||
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n;n="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,n.hotkeys=e()}}(function(){function n(e){m=e||"all"}function t(){return m||"all"}function o(e,n,t){e.addEventListener?e.addEventListener(n,t,!1):e.attachEvent&&e.attachEvent("on"+n,function(){t(window.event)})}function r(e){return"string"==typeof e&&(e=E(e)),x.indexOf(e)!==-1}function i(e){return x.slice(0)}function f(e){var n,o=e.keyCode||f.which||f.charCode,r=O["*"];if(x.indexOf(o)===-1&&x.push(o),93!==o&&224!==o||(o=91),o in C){C[o]=!0;for(var i in k)k[i]===o&&(g[i]=!0);if(!r)return}for(var f in C)C[f]=e[b[f]];if(g.filter.call(this,e)){if(n=t(),r)for(a=0;a<r.length;a++)r[a].scope===n&&l(e,r[a],n);if(o in O)for(var a=0;a<O[o].length;a++)l(e,O[o][a],n)}}function l(e,n,t){var o;if(n.scope===t||"all"===n.scope){o=n.mods.length>0;for(var r in C)(!C[r]&&n.mods.indexOf(+r)>-1||C[r]&&n.mods.indexOf(+r)===-1)&&(o=!1);(0!==n.mods.length||C[16]||C[18]||C[17]||C[91])&&!o&&"*"!==n.shortcut||n.method(e,n)===!1&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0))}}function a(e,n){for(var o,r,i=h(e),f=[],l=0;l<i.length;l++){if(o=i[l].split("+"),o.length>1&&(f=s(o)),e=o[o.length-1],e=E(e),void 0===n&&(n=t()),!O[e])return;for(var a=0;a<O[e].length;a++)r=O[e][a],r.scope===n&&u(r.mods,f)&&(O[e][a]={})}}function c(e){var n,t,o;for(n in O)for(t=O[n],o=0;o<t.length;)t[o].scope===e?t.splice(o,1):o++}function u(e,n){if(e.length!==n.length)return!1;for(var t=0;t<e.length;t++)if(e[t]!==n[t])return!1;return!0}function d(e){var n=(e.target||e.srcElement).tagName;return!("INPUT"===n||"SELECT"===n||"TEXTAREA"===n)}function s(e){for(var n=e.slice(0,e.length-1),t=0;t<n.length;t++)n[t]=k[n[t]];return n}function h(e){var n;return e=e.replace(/\s/g,""),n=e.split(","),""===n[n.length-1]&&(n[n.length-2]+=","),n}function p(n){var t=n.keyCode||e.which||e.charCode,o=x.indexOf(t);if(o>=0&&x.splice(o,1),93!==t&&224!==t||(t=91),t in C){C[t]=!1;for(var r in k)k[r]===t&&(g[r]=!1)}}function g(e,n,t){var o=h(e),r=[],i=0;for(void 0===t&&(t=n,n="all");i<o.length;i++)e=o[i].split("+"),r=[],e.length>1&&(r=s(e),e=[e[e.length-1]]),e=e[0],e="*"===e?"*":E(e),e in O||(O[e]=[]),O[e].push({shortcut:o[i],scope:n,method:t,key:o[i],mods:r})}Array.prototype.indexOf||(Array.prototype.indexOf=function(e){for(var n=0;n<this.length;n++)if(this[n]===e)return n;return-1});for(var v,y=navigator.userAgent.toLowerCase().indexOf("firefox")>0,w={backspace:8,tab:9,clear:12,enter:13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,home:36,end:35,pageup:33,pagedown:34,",":188,".":190,"/":191,"`":192,"-":y?173:189,"=":y?61:187,";":y?59:186,"'":222,"[":219,"]":221,"\\":220},m="all",k={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":y?224:91,command:y?224:91},x=[],b={16:"shiftKey",18:"altKey",17:"ctrlKey"},C={16:!1,18:!1,17:!1},E=function(e){return w[e]||e.toUpperCase().charCodeAt(0)},O={},A=1;A<20;A++)w["f"+A]=111+A;b[y?224:91]="metaKey",C[y?224:91]=!1,o(document,"keydown",function(e){f(e)}),o(document,"keyup",function(e){p(e)}),v={setScope:n,getScope:t,deleteScope:c,getPressedKeyCodes:i,isPressed:r,filter:d,unbind:a};for(var K in v)g[K]=v[K];var P=window.hotkeys;return g.noConflict=function(e){return e&&window.hotkeys===g&&(window.hotkeys=P),g},window.hotkeys=g,g}); | ||
{ | ||
"name": "hotkeys-js", | ||
"version": "2.0.0", | ||
"version": "2.0.1", | ||
"description": "A simple micro-library for defining and dispatching keyboard shortcuts. It has no dependencies.", | ||
@@ -5,0 +5,0 @@ "main": "dist/hotkeys.min.js", |
@@ -74,3 +74,4 @@ //IE对indexOf方法的支持 | ||
function dispatch (event) { | ||
var key = event.keyCode,scope,asterisk = _handlers['*']; | ||
var key = event.keyCode || e.which || e.charCode, | ||
scope,asterisk = _handlers['*']; | ||
@@ -213,3 +214,3 @@ //搜集绑定的键 | ||
function clearModifier(event){ | ||
var key = event.keyCode, | ||
var key = event.keyCode || e.which || e.charCode, | ||
i = _downKeys.indexOf(key); | ||
@@ -216,0 +217,0 @@ |
37885
600