JavaScript and Dreamweaver Behaviors
One of the interesting side benefits of the rise of the World Wide Web has been the proliferation of JavaScript. JavaScript is a compact, capable language that is relatively easy to learn. Like any programming language, on the other hand, it's not always easy to use well. It's easy enough to get a window to open, but harder to get that window to open in response to an incorrectly filled-out form, for example.
Fortunately, Dreamweaver provides a way to get the most out of JavaScript, with very little programming. Dreamweaver's tools for adding interactive JavaScript to a page are called behaviors. Keep in mind that these are not the same thing as the Server Behaviors we discussed in Chapter 10, because they are executed in the browser, rather than by the server.
In this chapter we'll look at how some of the more useful behaviors work, and go into some detail about how they interact with each other and with Fireworks. We'll also look at the JavaScript debugger and how the Snippets panel provides some useful shortcuts for JavaScript widgets.
JavaScript Concepts
Behaviors in Dreamweaver are the combination of an event and an action. The behavior is attached to an object. The object can be a page, a form, a link, a button, or almost anything you can put on a page.
Behaviors in Dreamweaver, as we mentioned in the introduction to this chapter, are written in JavaScript. Specifically, they are client-side JavaScript, which means that they are executed by the user's browser, rather than by the server. This is unlike, say, PHP, which is executed by a special program attached to a server.
Unfortunately, JavaScript is not implemented exactly the same way on all browsers. Internet Explorer and Navigator, for example, deal with some objects differently, and even different versions of the same program can have differences. Macromedia claims to have done their darndest to make sure that Dreamweaver's behaviors are compatible with as many browsers as possible, but inevitably, there are exceptions.
Table 13.1 lists the JavaScript events available for behaviors in Dreamweaver and which browsers they are compatible with.
Table 13.1 Events are arranged in logical sets rather than alphabetically. This table does not include all event handlers available to JavaScript, only those that Dreamweaver utilizes for behaviors.
Table 13.1 User Events Available in Dreamweaver
Event Handler Name |
Description of the user event (The event handler may call any number of actions, including dialog boxes.) |
Browsers (According to Dreamweaver.) |
Associated Tags (Other tags may be used; these are the most common associated objects.) |
Page Loading Events |
|||
onAbort |
When user presses the Stop button or Esc key before successful page or image loading |
NN3, NN4, NS6, IE4, IE5 |
body, img |
onLoad |
When a page, frameset, or image has finished loading |
NN3, NN4, NS6, IE3, IE4, IE5 |
body, img |
onUnload |
When the user leaves the page (clicks on a link, or presses the back button) |
NN3, NN4, NS6, IE3, IE4, IE5 |
body |
onResize |
When the user resizes the browser window |
NN3, NN4, NS6, IE4, IE5 |
body |
onError |
When a JavaScript error occurs |
NN3, NN4, NS6, IE4, IE5 |
a, body, img |
Form and Form Field Events |
|||
onBlur |
When a form field "loses the focus" of its intended use |
NN3, NN4, NS6, IE3, IE4, IE5 |
form fields: text, textarea, select |
onFocus |
When a form field receives the user's focus by being selected by the Tab key |
NN3, NN4, NS6, IE3, IE4, IE5 |
form fields: text, keytextarea, select |
onChange |
When the user changes the default selection in a form field |
NN3, NN4, NS6, IE3, IE4, IE5 |
most form fields |
onSelect |
When the user selects text within a form field |
NN3, NN4, NS6, IE3, IE4, IE5 |
form fields: text, textarea |
onSubmit |
When a user clicks on the form's Submit button |
NN3, NN4, NS6, IE3, IE4, IE5 |
form |
onReset |
When a user clicks on the form's Reset button |
NN3, NN4, NS6, IE3, IE4, IE5 |
form |
Mouse Events |
|||
onClick |
When the user clicks on the object(IE3 uses this handler only for form fields) |
NN3, NN4, NS6, IE3, IE4, IE5 |
a; form fields: button, checkbox, radio, reset, submit |
onDblClick |
When the user double-clicks on the object |
NN4, NS6, IE4, IE5 |
a, img |
onMouseMove |
When the user moves the mouse |
NS6, IE3, IE4, IE5 |
a, img |
onMouseDown |
When the mouse button is depressed |
NN4, NS6, IE4, IE5 |
a, img |
onMouseUp |
When the mouse button is released |
NN4, NS6, IE4, IE5 |
a, img |
onMouseOver |
When the user points the mouse pointer at an object |
NN3, IE3, NN4, NS6, IE4, IE5 |
a, img |
onMouseOut |
When the mouse is moved off an object that was moused over |
NN3, NN4, NS6, IE4, IE5 |
a, img |
Keyboard Events |
|||
onKeyDown |
When a key on the keyboard is depressed |
NN3, NN4, NS6, IE3, IE4, IE5 |
form fields: text, textarea |
onKeyPress |
When the user presses any key |
NN3, NN4, NS6, IE3, IE4, IE5 |
form fields: text, textarea |
onKeyUp |
When a key on the keyboard is released |
NN3, NN4, NS6, IE3, IE4, IE5 |
form fields: text, textarea |
IE 4+ Events |
|||
onHelp |
When the user presses F1 or selects a link labeled "help" |
IE4, IE5 |
a, img |
onReadyStateChange |
Page is loading |
IE4, IE5 |
img |
onAfterUpdate |
After the content of a form field changes |
IE4, IE5 |
a, body, img |
onBeforeUpdate |
After form field item changes, before content loses focus |
IE4, IE5 |
a, body, img |
onScroll |
When the user uses the page scrollbars |
IE4, IE5 |
body |
NOTE
IE5 IN THIS TABLE SHOULD BE CONSIDERED TO INCLUDE IE6 FOR WINDOWS.
Let's take a look at how to apply behaviors to objects. If you need a broader introduction to behaviors, check out Macromedia Dream-weaver MX for Windows and Macintosh: Visual QuickStart Guide, written by our co-author, J. Tarin Towers.
To add a behavior:
In the Document window, click on the object you want the behavior to act on, or choose an entire tag (such as <body>), by selecting the tag in the Tag selector in the status bar of the Document window (Figure 13.1).
Figure 13.1 Clicking on a tag in the Tag selector selects the entire tag.
If the Behaviors panel isn't visible, select Window > Behaviors from the menu bar, and it will appear as part of the Design panel group.
On the left side of the Behaviors panel, click on the + (plus) button to pop up a menu that includes both a list of actions that are available and a way to select your target browser. Select the Show Events For submenu and choose your target browser (Figure 13.2). If you don't select a browser, the list of events will be limited to those available for both 3.0 and 4.0 browsers.
Figure 13.2 You can specify your target browser.
Click on the plus button again to show a menu of actions that are available for that particular browser/object combination (Figure 13.3).
Figure 13.3 The menu adjusts for your browser and the object you have selected.
Choose your action from the menu. In most cases, a dialog box will appear.
Fill out the dialog box and click on OK. The name of the action will appear in the Actions list box.
Click on the arrow to the left of the Action name to show a menu of available user events (Figure 13.4).
Figure 13.4 You can set the event that triggers the behavior.
The available events will depend on the object/browser/action combination you chose. More events are available if you choose 4.0 or later browsers, but remember that only the users with those browsers will be able to use them.
Choose your event from the menu (they're described later in this chapter). Its name will appear in the Events list box.
To see events for a specific browser only, select the browser from the Show Events For submenu.
In the next few sections of this chapter, we'll look at a few of the more useful behaviors, and how to use them to make your Web site more interactive.
TIP
Almost anyone who is running a graphical Web browser at all is running version 4.0 or laterfor the most part. While those who don't have or can't run a recent Web browser may indeed be technologically challenged, that doesn't mean they're all stubborn Luddites who live in bunkers and use software they compiled themselves on an Amiga toaster. Where do old computers go to die? Sadly, they often go to schools, libraries, and other underfunded public programsor to secretive nomads whose donkeys have satellite hookups.