php 快捷复制 代码,JavaScript_js客户端快捷键管理类的较完整实现和应用,复制代码 代码如下: //一个快 - phpStudy...

js客户端快捷键管理类的较完整实现和应用

复制代码 代码如下:

//一个快捷键对象

function KeyOne(id, keys, dom, isfun, fun,iskeydown) {

this.id = id;

this.keys = keys;

this.dom = dom;

this.isfun = isfun;

this.fun = fun;

this.isKeydown = iskeydown;

}

//快捷键管理类

var KeyConlor = {};

KeyConlor.list = new Array();

//添加一个快捷键绑定焦点(当快捷键被激发时让焦点落在指定id对象上)

//使用说明key的值如果是“c,50”则表示“ctrl”和键码为50的组合键

// "a,50" 则表示“alt”和键码为50的组合键

// "s,50" 则表示“shift”和键码为50的组合键

// "50" 则表示键码为50的单键(建议使用组合键alt)

//id指的是快捷键对应的焦点对象。

//dom指的是id对象所在的document对象

KeyConlor.addkeyfouse = function(id, key, dom, iskyedown) {

var keyone = new KeyOne(id, key, dom, false, null, iskyedown);

if (KeyConlor.KeyIsOK(keyone)) {

KeyConlor.list.push(keyone);

} else {

alert("快捷键"+keyone.keys+"已经被注册 不能重复注册了");

return false;

}

};

//快捷键绑定方法(当快捷键激发时触发方法)

KeyConlor.addkeyfun = function(key, fun, iskeydown) {

var keyone = new KeyOne("", key, "", true, fun, iskeydown);

if (KeyConlor.KeyIsOK(keyone)) {

KeyConlor.list.push(keyone)

} else {

alert("快捷键:" + keyone.keys + ";已经被注册 .重复注册无效");

return false;

}

};

//--删除一个快捷键

//KeyConlor.removeFouseKey = function(id) {

// var keyone = new KeyOne(id, "");

// for (var i = 0; i < KeyConlor.list.length; i++) {

// if (keyone.id == KeyConlor.list[i].id) {

// KeyConlor.list[i] = null;

// }

// }

//};

//--判断快捷键是不是重复注册

KeyConlor.KeyIsOK = function(keyone) {

for (var i = 0; i < KeyConlor.list.length; i++) {

if (KeyConlor.list[i].keys == keyone.keys) {

return false;

}

}

return true;

};

document.onkeydown = function() {

for (var i = 0; i < KeyConlor.list.length; i++) {

var keyone = KeyConlor.list[i];

if (!keyone.isKeydown) continue;

var control = keyone.keys.split(",")[0];

switch (control) {

case 's':

var code = keyone.keys.split(",").length > 1 ? keyone.keys.split(",")[1] : keyone.keys.split(",")[0];

if (event.shiftKey == true && event.keyCode == code) {

//获得焦点

if (!keyone.isfun) {

keyone.dom.getElementById(keyone.id).focus();

} else {

keyone.fun();

}

event.keyCode=0;

return false;

}

break;

case 'c':

var code = keyone.keys.split(",").length > 1 ? keyone.keys.split(",")[1] : keyone.keys.split(",")[0];

if (event.ctrlKey == true && event.keyCode == code) {

//获得焦点

if (!keyone.isfun) {

keyone.dom.getElementById(keyone.id).focus();

} else {

keyone.fun();

}

event.keyCode=0;

return false;

}

break;

case 'a':

var code = keyone.keys.split(",").length > 1 ? keyone.keys.split(",")[1] : keyone.keys.split(",")[0];

if (event.altKey == true && event.keyCode == code) {

//获得焦点

if (!keyone.isfun) {

keyone.dom.getElementById(keyone.id).focus();

} else {

keyone.fun();

}

event.keyCode=0;

return false;

}

event.keyCode=0;

break;

default:

//获得焦点

var code = keyone.keys.split(",").length > 1 ? keyone.keys.split(",")[1] : keyone.keys.split(",")[0];

if (event.keyCode == code && event.altKey == false && event.ctrlKey == false && event.shiftKey == false) {

if (!keyone.isfun) {

keyone.dom.getElementById(keyone.id).focus();

} else {

keyone.fun();

}

event.keyCode=0;

return false;

}

break;

}

}

};

document.onkeyup = function() {

for (var i = 0; i < KeyConlor.list.length; i++) {

var keyone = KeyConlor.list[i];

if (keyone.isKeydown) continue;

var control = keyone.keys.split(",")[0];

switch (control) {

case 's':

var code = keyone.keys.split(",").length > 1 ? keyone.keys.split(",")[1] : keyone.keys.split(",")[0];

if (event.shiftKey == true && event.keyCode == code) {

//获得焦点

if (!keyone.isfun) {

keyone.dom.getElementById(keyone.id).focus();

} else {

keyone.fun();

}

event.keyCode=0;

return false;

}

break;

case 'c':

var code = keyone.keys.split(",").length > 1 ? keyone.keys.split(",")[1] : keyone.keys.split(",")[0];

if (event.ctrlKey == true && event.keyCode == code) {

//获得焦点

if (!keyone.isfun) {

keyone.dom.getElementById(keyone.id).focus();

} else {

keyone.fun();

}

event.keyCode=0;

return false;

}

break;

case 'a':

var code = keyone.keys.split(",").length > 1 ? keyone.keys.split(",")[1] : keyone.keys.split(",")[0];

if (event.altKey == true && event.keyCode == code) {

//获得焦点

if (!keyone.isfun) {

keyone.dom.getElementById(keyone.id).focus();

} else {

keyone.fun();

}

event.keyCode=0;

return false;

}

break;

default:

//获得焦点

var code = keyone.keys.split(",").length > 1 ? keyone.keys.split(",")[1] : keyone.keys.split(",")[0];

if (event.keyCode == code && event.altKey == false && event.ctrlKey == false && event.shiftKey == false) {

if (!keyone.isfun) {

keyone.dom.getElementById(keyone.id).focus();

} else {

keyone.fun();

}

event.keyCode=0;

return false;

}

break;

}

}

};

//常用键盘码

var keyCodeStr = {

Alt: "a",

Shift: "s",

Ctrl: "c",

Up: "38",

Down: "40",

Left: "37",

Right: "39",

Esc: "27",

Enter: "13",

Backspace: "8",

Delete: "46",

Tab: "9",

CapsLK: "20",

Space: "32"

};

[code]

----------以上是js类-------------------------------

[code]

KeyConlor.addkeyfun(keyCodeStr.Ctrl+","+"70",function (){alert("哈哈");},true);

KeyConlor.addkeyfouse("2","65",document,true);

相关阅读:

Windows Server 2008新特性解析

VBS教程:函数-IsNull 函数

js substr、substring和slice使用说明小记

tomcat下post方式提交服务器乱码

css教程 css和document

创建完全可编辑的 DataGrid

VBS教程:方法-Items 方法

菜鸟学习JavaScript小实验之函数引用

将 DataSet 绑定到 DataGrid 控件

MySQL新手入门指南--快速参考 (1)

Ajax 和 XML: 用于表单的 Ajax下

web get/post区别

windows的虚拟主机安全配置方法

用qmail/vpopmail/courier-imap/qmail-scanner/igenus打造邮件系统

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值