A Look at JavaScript in Domino

Table 16.2 outlines the JavaScript Domino design elements for a form or page object in the Designer.

Table 16.2. JavaScript's Form Event Handlers

Form Event Handlers Trigger Event Description
OnLoad Works the same as the PostOpen event in Notes.
OnUnload Occurs before the document is cleared from memory.
OnSubmit Window event. Occurs before the document is saved.
OnReset Window event. Occurs before the document is reset or refreshed.
OnBlur Works the same as the Exiting event in Notes. Closes/exits the form.
OnClick Indicates that an object on a form is clicked.
OnDblClick Indicates that the user double-clicks a form element or link.
OnFocus Opens/edits the Notes form.
OnHelp Occurs when the key F1 is pressed.
OnKeyDown Occurs when the Down key is pressed.
OnKeyPress Occurs when a key is pressed or held down.
OnKeyUp Occurs when the Up key is pressed.
OnLoad Occurs when the browser finishes loading a window object.
OnMouseDown Occurs when a mouse button is pressed.
OnMouseMove Occurs when the user moves the cursor.
OnMouseOut Occurs when the cursor leaves the page or form.
OnMouseOver Occurs when the cursor moves over the form or page.
OnMouseUp Occurs when the user releases a mouse button.
OnUnload Occurs when a window is terminated by a user.

The JavaScript events for form elements (fields) are the same, with the exception of those in Table 16.3.

Table 16.3. JavaScript's Field Event Handlers

Field Event Handlers Trigger Event Description
OnFocus Upon entering the field object
OnBlur When exiting the field object
OnChange When the value of the field is changed
OnDblClick When the user double-clicks inside the form element (field)
OnClick When the user single-clicks inside the form element (field)
OnKeyDown When any key is pressed while the cursor is inside the field
OnKeyPress When any key is pressed or held down while the cursor resides inside the field
OnKeyUp When any key is pressed and released while the cursor is inside the field
OnMouseDown When a mouse button is pressed
OnMouseMove When the user moves the cursor inside the field
OnMouseOut When the cursor leaves the field
OnMouseOver When the cursor moves over the field
OnMouseUp When the user releases a mouse button
OnSelect Upon selecting text in the field

The JS Header is also a form object placeholder in which to store all the JavaScript functions that will be called from the form where it resides. Any functions placed in the JS Header pertain only to the form where they are placed; it cannot be shared with other forms. To share script across other objects in the database, you'll want to place the functions in a script library. Script libraries are treated as a shared resource and can be added to the Script Library section in the shared code area of the Design pane. Reusable functions, function definitions, and global declarations should be stored in the JS Header . Any inline script between tags inside the

tag on a document can be placed inside the JS Header as well. Figure 16.7 shows the JS Header with JavaScript functions inside the IDE.

Figure 16.7. The JS Header containing global declarations and functions for the form.

You can see the various global declarations as well as the other reusable functions for this form in Figure 16.7. The JS Header event is where the JavaScript code should be scripted and stored.

Several great uses for JavaScript exist in Domino and on the Web. Some of these are for input validation, dialog boxes, object manipulation, event handling, and communication with Java plug-ins. JavaScript can be coded to handle events in actions, buttons , and hotspots, as well as forms, pages, subforms, and fields. On the Web, JavaScript offers support for popular events such as onMouseOver for pop-up help, numeric calculations, dialog boxes, and even the addition of fields and the ability to build dynamic table on the fly. More important, you can use JavaScript for a single solution that works for both the Notes client and the Web browser. For examples of some of these uses, you'll want to explore Chapter 17.

Категории