Crossbrowser Keyhandler / taste funktion
oki... har nørklet med denne lille opgave i 4 dage nu og kaster håndklædet i ringen - !! help me !!opgaven:
Jeg vil gerne fange tastaturtryk på 'document'
dvs. noget der ligner:
<script>
document.keypress = function(){}
</script>
metododen /handleren skal være crossbrowser kompatibel
mit nuværende eksempel som virker i Internet Explorer til fulde:
-KODE-------------------------------------------------
document.onkeypress = function(){
// oprindeligt en crossbrowser metode at fange charCode
// if (!e) var e = window.event;
// var charCode = (e.charCode) ? e.charCode : ((e.keyCode) ? e.keyCode : ((e.which) ? e.which : 0));
var charCode;
if (!e) var e = window.event;
if (e.keyCode) charCode = e.keyCode;
else if (e.which) charCode = e.which;
if( String.fromCharCode(charCode).match(/([\w\d\W\.,\/*\-\+!"#¤%/\(\)\[\{\}\]?=£@$½§^¨~])/) ){ alert( String.fromCharCode(charCode) )}
}
document.onkeydown = function(){
// oprindeligt en crossbrowser metode at fange charCode
// if (!e) var e = window.event;
// var charCode = (e.charCode) ? e.charCode : ((e.keyCode) ? e.keyCode : ((e.which) ? e.which : 0));
var charCode;
if (!e) var e = window.event;
if (e.keyCode) charCode = e.keyCode;
else if (e.which) charCode = e.which;
switch(charCode){
case 27:
// ESC
alert( String.fromCharCode(charCode) )
break;
case 13:
// ENTER
alert( String.fromCharCode(charCode) )
break;
case 8:
// BACKSPACE
alert( String.fromCharCode(charCode) )
break;
case 9:
// TAB
alert( String.fromCharCode(charCode) )
break;
case 45:
// INS
alert( String.fromCharCode(charCode) )
break;
case 35:
// END
alert( String.fromCharCode(charCode) )
break;
case 36:
// HOME
alert( String.fromCharCode(charCode) )
break;
case 46:
// DEL
alert( String.fromCharCode(charCode) )
break;
case 32:
// SPACE
alert( String.fromCharCode(charCode) )
break;
case 39:
// ARROW RIGHT
alert( String.fromCharCode(charCode) )
break;
case 37:
// ARROW LEFT
alert( String.fromCharCode(charCode) )
break;
case 40:
// ARROW DOWN // Command browser
alert( String.fromCharCode(charCode) )
break;
case 38:
// ARROW UP // Command browser
alert( String.fromCharCode(charCode) )
break;
}
}