[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>
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>