Using Events in JavaScript

When you load an XML document in a browser, the browser can keep track of the success or failure of the operation. When the user clicks a button in a Web page or uses the mouse, the browser keeps track of that, too. How does the browser inform your JavaScript code what's going on? It uses events.

For example, when the user clicks a Web page, a mouseDown event occurs. To handle that event in your code, you can connect code to that event. Most HTML tags now support events using attributes such as onMouseDown that you use to connect events to JavaScript code. Here's an example. In this case, when the user clicks the Web page, a mouseDown event occurs. Using the onMouseDown attribute, I can execute JavaScript code to perform some action, such as turning the background of the Web page green. (This example works only in Internet Exploreryou have to add a little additional code to make it work in the Netscape Navigator, as we'll see at the end of this chapter.)

Listing ch06_02.html
 <HTML>     <HEAD>         <TITLE>             Using JavaScript Events         </TITLE>     </HEAD>     <BODY onMouseDown="document.bgColor='green'">         <CENTER>             <H1>                 Click anywhere to turn this page green!             </H1>         </CENTER>     </BODY> </HTML> 

When the user clicks the Web page, the code document.bgColor='green' is executed, assigning a value of "green" to the document.bgColor property. You can see this page at work in Figure 6-2.

Figure 6-2. Using an event in Internet Explorer.

graphics/06fig02.gif

This example is a very simple one because the JavaScript code is in the <BODY> element itself. For longer code, you'll usually store the code in the <SCRIPT> element instead and call that code from elements such as <BODY> . We'll see how that works in the section "Creating Functions in JavaScript," later in this chapter.

A great number of events are available. Here's a starter list showing the commonly used ones (note that support for these attributes varies by browser and by HTML tag):

  • onBlur Happens when an element loses the input focus. (The element with the focus is the one keystrokes are sent to.)

  • onChange Happens when data in an HTML control changes. (HTML controls include text fields, buttons , lists, and so on.)

  • onClick Happens when an element is clicked.

  • onDblClick Happens when an element is double-clicked.

  • onError Happens when an error occurs while executing your code.

  • onFocus Happens when an element gets the focus. (The element with the focus is the one keystrokes are sent to.)

  • onKeyDown Happens when a key is pressed.

  • onKeyPress Happens when a key is pressed and the key code is available to be read in code.

  • onKeyUp Happens when a key is released.

  • onLoad Happens when the page first loads in the browser.

  • onMouseDown Happens when a mouse button is pressed.

  • onMouseMove Happens when the mouse moves.

  • onMouseOut Happens when the mouse leaves a visible HTML element.

  • onMouseOver Happens when the mouse cursor moves over an element.

  • onMouseUp Happens when a mouse button is released.

  • onMove Happens when an element is moved, either by code or by the user.

  • onReset Happens when the user clicks the Reset button in an HTML form.

  • onResize Happens when code or the user resizes an element or page.

  • onSelect Happens when the user makes a selection.

  • onSubmit Happens when the user clicks the Submit button in an HTML form.

  • onUnload Happens when the browser unloads a page.

You use events to handle user and browser actions in real time in your code, and dozens of events are available. These events are supported by the various HTML tags supported by the browser. You can see which HTML tags support what event attributes in Table 6-1 for Internet Explorer and Table 6-2 for the Netscape Navigator.

Table 6-1. Events Supported by Internet Explorer
Element Event Attributes
A onbeforecopy , onbeforecut , onbeforeeditfocus , onbeforefocusenter , onbeforefocusleave , onbeforepaste , onblur , onclick , oncontextmenu , oncontrolselect , oncopy , oncut , ondblclick , ondrag , ondragend , ondragenter , ondragleave , ondragover , ondragstart , ondrop , onfocus , onfocusenter , onfocusleave , onhelp , onkeydown , onkeypress , onkeyup , onlosecapture , onmousedown , onmouseenter , onmouseleave , onmousemove , onmouseout , onmouseover , onmouseup , onpaste , onpropertychange , onreadystatechange , onresize , onresizeend , onresizestart , onselectstart
BODY onafterprint , onbeforecut , onbeforefocusenter , onbeforefocusleave , onbeforepaste , onbeforeprint , onbeforeunload , onclick , oncontextmenu , oncontrolselect , oncut , ondblclick , ondrag , ondragend , ondragenter , ondragleave , ondragover , ondragstart , ondrop
BUTTON onbeforecut , onbeforeeditfocus , onbeforefocusenter , onbeforefocusleave , onbeforepaste , onblur , onclick , oncontextmenu , oncontrolselect , oncut , ondblclick , ondragenter , ondragleave , ondragover , ondrop , onfilterchange , onfocus , onfocusenter , onfocusleave , onhelp , onkeydown , onkeypress , onkeyup , onlosecapture , onmousedown , onmouseenter , onmouseleave , onmousemove , onmouseout , onmouseover , onmouseup , onpaste , onpropertychange , onreadystatechange , onresize , onresizeend , onresizestart , onselectstart
DIV onbeforecopy , onbeforecut , onbeforeeditfocus , onbeforefocusenter , onbeforefocusleave , onbeforepaste , onblur , onclick , oncontextmenu , oncontrolselect , oncopy , oncut , ondblclick , ondrag , ondragend , ondragenter , ondragleave , ondragover , ondragstart , ondrop , onfilterchange , onfocus , onfocusenter , onfocusleave , onhelp , onkeydown , onkeypress , onkeyup , onlayoutcomplete , onlosecapture , onmousedown , onmouseenter , onmouseleave , onmousemove , onmouseout , onmouseover , onmouseup , onpaste , onpropertychange , onreadystatechange , onresize , onresizeend , onresizestart , onscroll , onselectstart
FORM onbeforecopy , onbeforecut , onbeforefocusenter , onbeforefocusleave , onbeforepaste , onblur , onclick , oncontextmenu , oncontrolselect , oncopy , oncut , ondblclick , ondrag , ondragend , ondragenter , ondragleave , ondragover , ondragstart , ondrop , onfocus , onfocusenter , onfocusleave , onhelp , onkeydown , onkeypress , onkeyup , onlosecapture , onmousedown , onmouseenter , onmouseleave , onmousemove , onmouseout , onmouseover , onmouseup , onpaste , onpropertychange , onreadystatechange , onreset , onresize , onresizeend , onresizestart , onselectstart , onsubmit
FRAME onbeforefocusenter , onbeforefocusleave , onblur , oncontrolselect , onfocus , onfocusenter , onfocusleave , onresize , onresizeend , onresizestart
IFRAME onbeforefocusenter , onbeforefocusleave , onblur , oncontrolselect , onfocus , onfocusenter , onfocusleave , onresizeend , onresizestart
IMG onabort , onbeforecopy , onbeforecut , onbeforefocusenter , onbeforefocusleave , onbeforepaste , onblur , onclick , oncontextmenu , oncontrolselect , oncopy , oncut , ondblclick , ondrag , ondragend , ondragenter , ondragleave , ondragover , ondragstart , ondrop , onerror , onfilterchange , onfocus , onfocusenter , onfocusleave , onhelp , onload , onlosecapture , onmousedown , onmouseenter , onmouseleave , onmousemove , onmouseout , onmouseover , onmouseup , onpaste , onpropertychange , onreadystatechange , onresize , onresizeend , onresizestart , onselectstart
INPUT (button) onbeforecut , onbeforeeditfocus , onbeforefocusenter , onbeforefocusleave , onbeforepaste , onblur , onclick , oncontextmenu , oncontrolselect , oncut , ondblclick , ondrag , ondragend , ondragenter , ondragleave , ondragover , ondragstart , ondrop , onfilterchange , onfocus , onfocusenter , onfocusleave , onhelp , onkeydown , onkeypress , onkeyup , onlosecapture , onmousedown , onmouseenter , onmouseleave , onmousemove , onmouseout , onmouseover , onmouseup , onpaste , onpropertychange , onreadystatechange , onresize , onresizeend , onresizestart , onselectstart
INPUT (check box) onbeforecut , onbeforeeditfocus , onbeforefocusenteronbeforefocusleave , onbeforepaste , onblur , onclick , oncontextmenu , oncontrolselect , oncut , ondblclick , ondrag , ondragend , ondragenter , ondragleave , ondragover , ondragstart , ondrop , onfilterchange , onfocus , onfocusenter , onfocusleave , onhelp , onkeydown , onkeypress , onkeyup , onlosecapture , onmousedown , onmouseenter , onmouseleave , onmousemove , onmouseout , onmouseover , onmouseup , onpaste , onpropertychange , onreadystatechange , onresizeend , onresizestart , onselectstart
INPUT (radio button) onbeforecut , onbeforeeditfocus , onbeforefocusenter , onbeforefocusleave , onbeforepaste , onblur , onclick , oncontextmenu , oncontrolselect , oncut , ondblclick , ondrag , ondragend , ondragenter , ondragleave , ondragover , ondragstart , ondrop , onfilterchange , onfocus , onfocusenter , onfocusleave , onhelp , onkeydown , onkeypress , onkeyup , onlosecapture , onmousedown , onmouseenter , onmouseleave , onmousemove , onmouseout , onmouseover , onmouseup , onpaste , onpropertychange , onreadystatechange , onresizeend , onresizestart , onselectstart
INPUT (submit button) onbeforecut , onbeforeeditfocus , onbeforefocusenter , onbeforefocusleave , onbeforepaste , onblur , onclick , oncontextmenu , oncontrolselect , oncut , ondblclick , ondrag , ondragend , ondragenter , ondragleave , ondragover , ondragstart , ondrop , onfilterchange , onfocus , onfocusenter , onfocusleave , onhelp , onkeydown , onkeypress , onkeyup , onlosecapture , onmousedown , onmouseenter , onmouseleave , onmousemove , onmouseout , onmouseover , onmouseup , onpaste , onpropertychange , onreadystatechange , onresize , onresizeend , onresizestart , onselectstart
INPUT (text field) onafterupdate , onbeforecut , onbeforeeditfocus , onbeforefocusenter , onbeforefocusleave , onbeforepaste , onbeforeupdate , onblur , onchange , onclick , oncontextmenu , oncontrolselect , oncut , ondblclick , ondrag , ondragend , ondragenter , ondragleave , ondragover , ondragstart , ondrop , onerrorupdate , onfilterchange , onfocus , onfocusenter , onfocusleave , onhelp , onkeydown , onkeypress , onkeyup , onlosecapture , onmousedown , onmouseenter , onmouseleave , onmousemove , onmouseout , onmouseover , onmouseup , onpaste , onpropertychange , onreadystatechange , onresize , onresizeend , onresizestart , onselect , onselectstart
LI onbeforecopy , onbeforecut , onbeforefocusenter , onbeforefocusleave , onbeforepaste , onblur , onclick , oncontextmenu , oncontrolselect , oncopy , oncut , ondblclick , ondrag , ondragend , ondragenter , ondragleave , ondragover , ondragstart , ondrop , onfocus , onfocusenter , onfocusleave , onhelp , onkeydown , onkeypress , onkeyup , onlayoutcomplete , onlosecapture , onmousedown , onmouseenter , object , onmouseleave , onmousemove , onmouseout , onmouseover , onmouseup , onpaste , onpropertychange , onreadystatechange , onresize , onresizeend , onresizestart , onselectstart
MARQUEE onbeforecut , onbeforeeditfocus , onbeforefocusenter , onbeforefocusleave , onbeforepaste , onblur , onbounce , oncontextmenu , oncontrolselect , oncut , ondblclick , ondrag , ondragend , ondragenter , ondragleave , ondragover , ondragstart , ondrop , onfilterchange , onfinish , onfocus , onfocusenter , onfocusleave , onhelp , onkeydown , onkeypress , onkeyup , onlosecapture , onmousedown , onmouseenter , onmouseleave , onmousemove , onmouseout , onmouseover , onmouseup , onpaste , onpropertychange , onreadystatechange , onresize , onresizeend , onresizestart , onscroll , onselectstart , onstart
OBJECT onbeforeeditfocus , onbeforefocusenter , onbeforefocusleave , onblur , oncellchange , onclick , oncontrolselect , ondataavailable , ondatasetchanged , ondatasetcomplete , ondblclick , ondrag , ondragend , ondragenter , ondragleave , ondragover , ondragstart , ondrop , onerror , onfocus , onfocusenter , onfocusleave , onkeydown , onkeypress , onkeyup , onlosecapture , onpropertychange , onreadystatechange , onresize , onresizeend , onresizestart , onrowenter , onrowexit , onrowsdelete , onrowsinserted , onscroll , onselectstart
P onbeforecopy , onbeforecut , onbeforefocusenter , onbeforefocusleave , onbeforepaste , onblur , onclick , oncontextmenu , oncontrolselect , oncopy , oncut , ondblclick , ondrag , ondragend , ondragenter , ondragleave , ondragover , ondragstart
PRE onbeforecopy , onbeforecut , onbeforefocusenter , onbeforefocusleave , onbeforepaste , onblur , onclick , oncontextmenu , oncontrolselect , oncopy , oncut , ondblclick , ondrag , ondragend , ondragenter , ondragleave , ondragover , ondragstart , ondrop , onfocus , onfocusenter , onfocusleave , onhelp , onkeydown , onkeypress , onkeyup , onlosecapture , onmousedown , onmouseenter , onmouseleave , onmousemove , onmouseout , onmouseover , onmouseup , onpaste , onpropertychange , onreadystatechange , onresize , onresizeend , onresizestart , onselectstart
SELECT onbeforecut , onbeforeeditfocus , onbeforefocusenter , onbeforefocusleave , onbeforepaste , onblur , onchange , onclick , oncontextmenu , oncontrolselect , oncut , ondblclick , ondragenter , ondragleave , ondragover , ondrop , onfocus , onfocusenter , onfocusleave , onhelp , onkeydown , onkeypress , onkeyup , onlosecapture , onmousedown , onmouseenter , onmouseleave , onmousemove , onmouseout , onmouseover , onmouseup , onpaste , onpropertychange , onreadystatechange , onresize , onresizeend , onresizestart , onscroll , onselectstart
SPAN onbeforecopy , onbeforecut , onbeforeeditfocus , onbeforefocusenter , onbeforefocusleave , onbeforepaste , onblur , onclick , oncontextmenu , oncontrolselect , oncopy , oncut , ondblclick , ondrag , ondragend , ondragenter , ondragleave , ondragover , ondragstart , ondrop , onfilterchange , onfocus , onfocusenter , onfocusleave , onhelp , onkeydown , onkeypress , onkeyup , onlosecapture , onmousedown , onmouseenter , onmouseleave , onmousemove , onmouseout
TABLE onbeforecut , onbeforeeditfocus , onbeforefocusenter , onbeforefocusleave , onbeforepaste , onblur , onclick , oncontextmenu , oncontrolselect , oncut , ondblclick , ondrag , ondragend , ondragenter , ondragleave , ondragover , ondragstart , ondrop , onfilterchange , onfocus , onfocusenter , onfocusleave , onhelp , onkeydown , onkeypress , onkeyup , onlosecapture , onmousedown , onmouseenter , onmouseleave , onmousemove , onmouseout , onmouseover , onmouseup , onpaste , onpropertychange , onreadystatechange , onresize , onresizeend , onresizestart , onscroll , onselectstart
TD onbeforecopy , onbeforecut , onbeforeeditfocus , onbeforefocusenter , onbeforefocusleave , onbeforepaste , onblur , onclick , oncontextmenu , oncontrolselect , oncopy , oncut , ondblclick , ondrag , ondragend , ondragenter , ondragleave , ondragover , ondragstart , ondrop , onfilterchange , onfocus , onfocusenter , onfocusleave , onhelp , onkeydown , onkeypress , onkeyup , onlosecapture , onmousedown , onmouseenter , onmouseleave , onmousemove , onmouseout , onmouseover , onmouseup , onpaste , onpropertychange , onreadystatechange , onresizeend , onresizestart , onselectstart
TEXTAREA onafterupdate , onbeforecopy , onbeforecut , onbeforeeditfocus , onbeforefocusenter , onbeforefocusleave , onbeforepaste , onbeforeupdate , onblur , onchange , onclick , oncontextmenu , oncontrolselect , oncut , ondblclick , ondrag , operation , ondragend , ondragenter , ondragleave , ondragover , ondragstart , ondrop , onerrorupdate , onfilterchange , onfocus , onfocusenter , onfocusleave , onhelp , onkeydown , onkeypress , onkeyup , onlosecapture , onmousedown , onmouseenter , onmouseleave , onmousemove , onmouseout , onmouseover , onmouseup , onpaste , onpropertychange , onreadystatechange , onresize , onresizeend , onresizestart , onscroll , onselect , onselectstart
Table 6-2. Events Supported by Netscape Navigator
Element Event Attributes
A onclick , onmouseout , onmouseover
BODY onload , onunload , onblur , onfocus
DIV None
EMBED None
FORM onreset , onsubmit
FRAME None
ILAYER None
IMG onabort , onerror , onload
INPUT (button) onclick
INPUT (check box) onclick
INPUT (radio button) onclick
INPUT (submit button) onclick
INPUT (text field) onblur , onchange , onfocus , onselect
LAYER onmouseover , onmouseout , onfocus , onblur , onload
LI None
OBJECT None
P None
PRE None
SELECT onblur , onchange , onclick , onfocus
SPAN None
TABLE None
TD None
TEXTAREA onblur , onchange , onfocus , onselect

This overview gives some indication of how powerful JavaScript is. It's time to turn to the details of writing code in JavaScript so we can put it to work in the next two chapters.



Real World XML
Real World XML (2nd Edition)
ISBN: 0735712867
EAN: 2147483647
Year: 2005
Pages: 440
Authors: Steve Holzner

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net