Quick References
ADO
ASP
CSS2
HTML
JavaScript
Jet SQL
VBScript
WML
WMLScript
WSH
XHTML
XML DOM
XSLT
Features
Knowledge Base
Tutorials
Partners
ZVON.ORG
XML
Planet Source Code
VisualBuilder
Web Design
Your HTML Source
XML/XSLT Forums
ASPAlliance
Scripts
Programmers Heaven
Tek-Tips Forums
Developer Fusion
Code Project
A100231: Determining which key was pressed on a keydown event.
If you hit any key on your keyboard and hold it down, you will see the relevant 'keycode' displayed in the textbox above. To achieve this, we first have to trap all 'keydown' events for the document. Netscape Navigator and Internet Explorer require different approaches to this.
For the Netscape code, we can use the
captureEvents
method of the document object, which instructs the document to capture and handle all events of a particular type, in this case the keydown event. The syntax for this is as follows:
document.captureEvents(Event.KEYDOWN)
For Internet Explorer, we can simply use the
onkeydown
event handler for the document object to call our function:
document.onkeydown = getKeycode
Now that we have successfully trapped each keypress, we need to determine which key was pressed and, again, this is handled differently for both main browsers.
For Netscape, we will use the Event object's
which
property, which returns a number that represents which key was pressed (its ASCII value) at the time the event occurred. Internet Explorer's event object, on the other hand, exposes a
keyCode
property, so we shall use that. The full source for the
getKeycode()
function is shown below, along with the necessary browser-detection routine:
<script type="text/javascript">
var blnDOM = false, blnIE4 = false, blnNN4 = false;
if (document.layers) blnNN4 = true;
else if (document.all) blnIE4 = true;
else if (document.getElementById) blnDOM = true;
function getKeycode(e)
{
if (blnNN4)
{
var NN4key = e.which
document.frmMain.txtShowKey.value = "Keycode = " + NN4key;
}
if (blnDOM)
{
var blnkey = e.which
document.frmMain.txtShowKey.value = "Keycode = " + blnkey;
}
if (blnIE4)
{
var IE4key = event.keyCode
document.frmMain.txtShowKey.value = "Keycode = " + IE4key
}
}
document.onkeydown = getKeycode
if (blnNN4) document.captureEvents(Event.KEYDOWN)
</script>
The Guru
Copyright 1999-2005 by Infinite Software Solutions, Inc. All rights reserved.
Trademark Information
knoxville photographer
knoxville wedding photographer