IE add support for indexOf method.

pull/11/head
jaywcjlove 10 years ago
parent d1b0b700b4
commit 447d9bcb6c

153
build/hotkeys.min.js vendored

@ -1 +1,152 @@
(function(a,b){var c=b(a);if(typeof define==="function"&&define.amd){define("hotkeys",function(){return c})}else if(typeof exports==="object"){module.exports=c}else{var d=a.hotkeys;c.noConflict=function(){var b=a.hotkeys;a.hotkeys=d;return b};a.hotkeys=c}})(this,function(a,b){var c,d={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,"-":189,"=":187,";":186,"'":222,"[":219,"]":221,"\\":220},e="all",f={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":91,command:91},g=[],h={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey"},j={16:false,18:false,17:false,91:false},l=function(a){return d[a]||a.toUpperCase().charCodeAt(0)},m={};for(k=1;k<20;k++){d["f"+k]=111+k}function n(a){e=a||"all"}function o(){return e||"all"}function p(a,b,c){if(a.addEventListener){a.addEventListener(b,c,false)}else if(a.attachEvent){a.attachEvent("on"+b,function(){c(window.event)})}}function q(a){if(typeof a==="string"){a=l(a)}return g.indexOf(a)!==-1}function r(a){return g.slice(0)}function s(a){var b=a.keyCode,c,d,e;if(g.indexOf(b)===-1)g.push(b);if(b===93||b===224)b=91;if(b in j){j[b]=true;for(var k in f)if(f[k]===b)x[k]=true;return}for(var l in j)j[l]=a[h[l]];if(!(b in m))return;d=o();for(i=0;i<m[b].length;i++){e=m[b][i];if(e.scope===d||e.scope==="all"){c=e.mods.length>0;for(var n in j){if(!j[n]&&e.mods.indexOf(+n)>-1||j[n]&&e.mods.indexOf(+n)===-1)c=false}if(e.mods.length===0&&!j[16]&&!j[18]&&!j[17]&&!j[91]||c){if(e.method(a,e)===false){if(a.preventDefault)a.preventDefault();else a.returnValue=false;if(a.stopPropagation)a.stopPropagation();if(a.cancelBubble)a.cancelBubble=true}}}}}function t(a,c){var d=w(a),e,f=[],g;console.log(d.length);for(var h=0;h<d.length;h++){e=d[h].split("+");if(e.length>1)f=v(e);a=e[e.length-1];a=l(a);if(c===b)c=o();if(!m[a])return;for(var i=0;i<m[a].length;i++){g=m[a][i];if(g.scope===c&&u(g.mods,f)){m[a][i]={}}}}}function u(a,b){if(a.length!==b.length)return false;for(var c=0;c<a.length;c++){if(a[c]!==b[c])return false}return true}function v(a){var b=a.slice(0,a.length-1);for(var c=0;c<b.length;c++)b[c]=f[b[c]];return b}function w(a){var b;a=a.replace(/\s/g,"");b=a.split(",");if(b[b.length-1]==="")b[b.length-2]+=",";return b}p(document,"keydown",function(a){s(a)});p(document,"keyup",function(a){var b=a.keyCode,c=g.indexOf(b);if(c>=0)g.splice(c,1)});function x(a,c,d){var e=w(a),f=[],g=0;if(d===b){d=c;c="all"}for(;g<e.length;g++){a=e[g].split("+");f=[];if(a.length>1){f=v(a);a=[a[a.length-1]]}a=a[0];a=l(a);if(!(a in m))m[a]=[];m[a].push({shortcut:e[g],scope:c,method:d,key:e[g],mods:f})}}c={setScope:n,getScope:o,getPressedKeyCodes:r,isPressed:q,unbind:t};for(var y in c)x[y]=c[y];return x});
Array.indexOf || (Array.prototype.indexOf = function(a) {
for (var b = 0; b < this.length; b++) if (this[b] === a) return b;
return -1;
}), function(a, b) {
var c = b(a);
if ("function" == typeof define && define.amd) define("hotkeys", function() {
return c;
}); else if ("object" == typeof exports) module.exports = c; else {
var d = a.hotkeys;
c.noConflict = function() {
var b = a.hotkeys;
return a.hotkeys = d, b;
}, a.hotkeys = c;
}
}(this, function(a, b) {
function c(a) {
r = a || "all";
}
function d() {
return r || "all";
}
function e(a, b, c) {
a.addEventListener ? a.addEventListener(b, c, !1) : a.attachEvent && a.attachEvent("on" + b, function() {
c(window.event);
});
}
function f(a) {
return "string" == typeof a && (a = w(a)), -1 !== t.indexOf(a);
}
function g(a) {
return t.slice(0);
}
function h(a) {
var b, c, e, f = a.keyCode;
if (-1 === t.indexOf(f) && t.push(f), (93 === f || 224 === f) && (f = 91), f in v) {
v[f] = !0;
for (var g in s) s[g] === f && (o[g] = !0);
} else {
for (var h in v) v[h] = a[u[h]];
if (f in x) for (c = d(), i = 0; i < x[f].length; i++) if (e = x[f][i], e.scope === c || "all" === e.scope) {
b = e.mods.length > 0;
for (var j in v) (!v[j] && e.mods.indexOf(+j) > -1 || v[j] && -1 === e.mods.indexOf(+j)) && (b = !1);
(0 !== e.mods.length || v[16] || v[18] || v[17] || v[91]) && !b || e.method(a, e) === !1 && (a.preventDefault ? a.preventDefault() : a.returnValue = !1,
a.stopPropagation && a.stopPropagation(), a.cancelBubble && (a.cancelBubble = !0));
}
}
}
function j(a, c) {
var e, f, g = n(a), h = [];
console.log(g.length);
for (var i = 0; i < g.length; i++) {
if (e = g[i].split("+"), e.length > 1 && (h = m(e)), a = e[e.length - 1], a = w(a),
c === b && (c = d()), !x[a]) return;
for (var j = 0; j < x[a].length; j++) f = x[a][j], f.scope === c && l(f.mods, h) && (x[a][j] = {});
}
}
function l(a, b) {
if (a.length !== b.length) return !1;
for (var c = 0; c < a.length; c++) if (a[c] !== b[c]) return !1;
return !0;
}
function m(a) {
for (var b = a.slice(0, a.length - 1), c = 0; c < b.length; c++) b[c] = s[b[c]];
return b;
}
function n(a) {
var b;
return a = a.replace(/\s/g, ""), b = a.split(","), "" === b[b.length - 1] && (b[b.length - 2] += ","),
b;
}
function o(a, c, d) {
var e = n(a), f = [], g = 0;
for (d === b && (d = c, c = "all"); g < e.length; g++) a = e[g].split("+"), f = [],
a.length > 1 && (f = m(a), a = [ a[a.length - 1] ]), a = a[0], a = w(a), a in x || (x[a] = []),
x[a].push({
shortcut: e[g],
scope: c,
method: d,
key: e[g],
mods: f
});
}
var p, q = {
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,
"-": 189,
"=": 187,
";": 186,
"'": 222,
"[": 219,
"]": 221,
"\\": 220
}, r = "all", s = {
"⇧": 16,
shift: 16,
"⌥": 18,
alt: 18,
option: 18,
"⌃": 17,
ctrl: 17,
control: 17,
"⌘": 91,
command: 91
}, t = [], u = {
16: "shiftKey",
18: "altKey",
17: "ctrlKey",
91: "metaKey"
}, v = {
16: !1,
18: !1,
17: !1,
91: !1
}, w = function(a) {
return q[a] || a.toUpperCase().charCodeAt(0);
}, x = {};
for (k = 1; k < 20; k++) q["f" + k] = 111 + k;
e(document, "keydown", function(a) {
h(a);
}), e(document, "keyup", function(a) {
var b = a.keyCode, c = t.indexOf(b);
c >= 0 && t.splice(c, 1);
}), p = {
setScope: c,
getScope: d,
getPressedKeyCodes: g,
isPressed: f,
unbind: j
};
for (var y in p) o[y] = p[y];
return o;
});

@ -1,3 +1,11 @@
//IE对indexOf方法的支持
if(!Array.indexOf){
Array.prototype.indexOf = function(obj){
for(var i=0; i<this.length; i++) if(this[i]===obj) return i;
return -1;
};
}
;(function(root, factory) {
var hotkeys = factory(root);
if (typeof define === 'function' && define.amd) {

Loading…
Cancel
Save