diff --git a/WebIDE/enhance.user.js b/WebIDE/enhance.user.js index 62bfba5..a5fb3c9 100644 --- a/WebIDE/enhance.user.js +++ b/WebIDE/enhance.user.js @@ -18,94 +18,13 @@ clearInterval(id); } }, 300) - var dqKeys = function (keys, isOrder, sucFuc, cancelFuc) { - return new dqKeys.fn.init(keys, isOrder, sucFuc, cancelFuc); - } - dqKeys.fn = dqKeys.prototype = { - 'version': '1.0.0', //版本号 - 'author': 'lidequan', //作者 - 'rightKeys': {}, //监听的按键{key:code},code为按键对应的ascii码 - 'curKeys': [], //当前按下的键 - 'sucFuc': null, //完成按键的回调函数 - 'cancelFuc': null, //完成按键取消后的回调函数 - 'isFinsh': false, //判断是否完成按键 - 'isOrder': false, //按键是否有相应的顺序 - init: function (keys, isOrder, sucFuc, cancelFuc) { - this.rightKeys = keys; - this.sucFuc = sucFuc; - this.cancelFuc = cancelFuc; - this.isOrder = isOrder; - return this; - }, - listenkeys: function () { //监听用户键盘操作 - var _self = this; - _self.addListener('keydown', function (oEvent) { - var aEvent = oEvent || window.event; - if (!_self.arrayContain(_self.curKeys, oEvent.keyCode)) { - if (_self.isOrder && _self.getNextKey() == oEvent.keyCode) { - _self.curKeys.push(oEvent.keyCode); - } else if (!_self.isOrder) { - _self.curKeys.push(oEvent.keyCode); - } - } - if (_self.checkResult(_self.rightKeys, _self.curKeys)) { - if (_self.sucFuc && !_self.isFinsh) { - _self.sucFuc(); - } - _self.isFinsh = true; - } - }); - _self.addListener('keyup', function (oEvent) { - var aEvent = oEvent || window.event; - if (_self.checkResult(_self.rightKeys, _self.curKeys) && _self.isFinsh) { - //完成按键,又取消的事件 - if (_self.cancelFuc) { - _self.cancelFuc(); - } - } - _self.curKey = _self.remove(_self.curKeys, oEvent.keyCode); - _self.isFinsh = false; - }); - }, - arrayContain: function (arr, val) { //判断数组中是否包含某个元素 - return (arr.indexOf(val) == -1) ? false : true; - }, - checkResult: function (json, arr) { //判断用户是否按下监听的所有按键 - for (var i in json) { - if (arr.indexOf(json[i]) == -1) { - return false; - } - } - return true; - }, - remove: function (arr, val) { //从数组中移除某个元素 - var index = arr.indexOf(val); - if (index > -1) { - arr.splice(index, 1); - } - return arr; - }, - getNextKey: function () { //获取下一次按键对应的ascii码 - for (var i in this.rightKeys) { - if (this.curKeys.indexOf(this.rightKeys[i]) == -1) { - return this.rightKeys[i]; - } - } - return null; - }, - addListener: function (ev, fn, bool) { //事件绑定 - if (document.attachEvent) { - document.attachEvent('on' + ev, fn); - } else { - document.addEventListener(ev, fn, bool); + document.onkeydown = function() { + var oEvent = window.event; + if (oEvent.keyCode == 87 && oEvent.altKey) { + var activeTab = document.getElementsByClassName('tab-label active')[0]; + if (activeTab) { + activeTab.childNodes[2].childNodes[0].click(); } } } - dqKeys.fn.init.prototype = dqKeys.fn; - dqKeys({'alt':18,'w':87}, true, function(){},function(){ - var activeTab = document.getElementsByClassName('tab-label active')[0]; - if (activeTab) { - activeTab.childNodes[2].childNodes[0].click(); - } - }).listenkeys(); })();