jsp画面快捷键失效

[b]event.srcElement[/b]捕获当前事件作用的对象,通过这个可以调用捕获标签的各个属性如下:
1.event.srcElement.tagName捕获作用标签的名称。获取的标签的值都是大写如:“TEXTAREA”,“INPUT”
2.event.srcElement.type捕获作用标签的类别。如:text,password,file等
3.event.srcElement.readOnly捕获作用标签是否是只读。
4.event.srcElement.id
5.event.srcElement.name
6.event.srcElement.className
7.event.srcElement.parentElement.id
8.event.srcElement.getAttribute
.....

[b]event.altKey[/b]功能:检测事件发生时Alt键是否被按住了。altKey属性为true表示事件发生时Alt键被按下并保持,为false则Alt键没有按下。同理event.ctrlKey,event.shiftKey

[b]event.keyCode[/b]表示按的建的代码,如13表示回车

[b]event.returnValue[/b]=false 设置事件的返回值为false,即取消事件处理


[b]示例代码[/b]
<script type="text/javascript">
window.document.oncontextmenu = function(){ return false;};
window.document.οnkeydοwn=CancelKeyStroke; // key压下时
//******************************************************************************
// key组合定义
//******************************************************************************
function keySet(alt,ctrl,shift,key,textEdit,retCode){
this.alt = alt; // Alt
this.ctrl = ctrl; // Ctrl
this.shift = shift; // Shift
this.key = key; // key值
this.textEdit = textEdit; // 对象
this.retCode = retCode; // 置换的keycode
}
//******************************************************************************
// 抑制的快捷键
//******************************************************************************
var moveKeys = new Array();

moveKeys[moveKeys.length] = new keySet(false,false,false,8,false,null);//Backspace
moveKeys[moveKeys.length] = new keySet(false,true,false,72,false,null); //CTRL+H
moveKeys[moveKeys.length] = new keySet(false,true,false,78,false,null); //CTRL+N
moveKeys[moveKeys.length] = new keySet(false,true,false,84,false,null); //CTRL+T
moveKeys[moveKeys.length] = new keySet(false,true,false,75,false,null); //CTRL+K
moveKeys[moveKeys.length] = new keySet(true,false,false,68,false,null); // ALT+D
moveKeys[moveKeys.length] = new keySet(false,true,false,76,false,null); //CTRL+L
moveKeys[moveKeys.length] = new keySet(true,false,false,13,false,37);//ALT+Enter
moveKeys[moveKeys.length] = new keySet(false,false,false,116,false,null);// F5
moveKeys[moveKeys.length] = newkeySet(false,true,false,116,false,null);//CTRL+F5

// 功能 : JSP画面特定key操作无效
// 返回值: true/false

function CancelKeyStroke(){
var elm = event.srcElement;
var alt = event.altKey;
var ctrl = event.ctrlKey;
var shift = event.shiftKey;
var key = event.keyCode;
var comb;
var textEdit = false;

// ALT+←
if ( alt && event.keyCode == 37 ){
event.returnValue = false;
return false;
}

// ALT+→
if ( alt && event.keyCode == 39 ){
event.returnValue = false;
return false;
}

// Esc
if ( event.keyCode == 27 ){
window.close();
}

// 按下BackSpace键时,遇到以下情况不生效
if(key == 8){
// BackSpace时TEXTAREA、text、password有效
textEdit = (elm.tagName == 'TEXTAREA' && !(elm.readOnly) ||
(elm.tagName == "INPUT" && elm.type == 'text' && !(elm.readOnly)) ||
(elm.tagName == "INPUT" && elm.type == 'password' && !(elm.readOnly)) ||
(elm.tagName == "INPUT" && elm.type == 'file' && !(elm.readOnly)));
}

// 判定
for(var ix = 0; ix < moveKeys.length; ++ix){
comb = moveKeys[ix];
if(comb.alt == alt && comb.ctrl == ctrl && comb.shift == shift && comb.key == key && comb.textEdit == textEdit){
event.keyCode = comb.retCode;
event.returnValue = false;
return false;
}
}
return true;
}
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值