Adobe 38040334 Extending Dreamweaver - Page 237

How Behaviors work

Page 237 highlights

DREAMWEAVER CS3 231 Extending Dreamweaver How Behaviors work When a user selects an HTML element in a Dreamweaver document and clicks the Plus (+) button on the Behaviors panel, the following events occur: 1 Dreamweaver calls the canAcceptBehavior() function in each Action file to see whether this action is appropriate for the document or the selected element. If the return value of this function is false, Dreamweaver dims the action in the Actions pop-up menu. (For example, the Control Shockwave action is dimmed when the user's document has no SWF files.) If the return value is a list of events, Dreamweaver compares each event with the valid events for the currently selected HTML element and target browser until it finds a match. Dreamweaver populates the Events pop-up menu with the matched event from the canAcceptBehavior() function at the top of the list. If no match exists, the default event for the HTML element (marked in the Event file with an asterisk [*]) becomes the top item. The remaining events in the menu are assembled from the Event file. 2 The user selects an action from the Actions pop-up menu. 3 Dreamweaver calls the windowDimensions() function to determine the size of the Parameters dialog box. If the windowDimensions() function is not defined, the size is determined automatically. A dialog box always appears, with OK and Cancel buttons at the right edge, regardless of the contents of the body element. 4 Dreamweaver displays a dialog box that contains the BODY elements of the Action file. If the Action file's body tag contains an onLoad handler, Dreamweaver executes it. 5 The user fills in the parameters for the action. Dreamweaver executes event handlers that are associated with the form fields as the user encounters them. 6 The user clicks OK. 7 Dreamweaver calls the behaviorFunction() and applyBehavior() functions in the selected Action file. These functions return strings that are inserted into the user's document. 8 If the user later double-clicks the action in the Actions column, Dreamweaver reopens the Parameters dialog box and executes the onLoad handler. Dreamweaver then calls the inspectBehavior() function in the selected Action file, which fills in the fields with the data that the user previously entered. Inserting multiple functions in the user's file Actions can insert multiple functions-the main behavior function plus any number of helper functions-into the head section. Two or more behaviors can even share helper functions as long as the function definition is exactly the same in each Action file. One way of ensuring that shared functions are identical is to store each helper function in an external JavaScript file and insert it into the appropriate Action files using . When the user deletes a behavior, Dreamweaver attempts to remove any unused helper functions that are associated with the behavior. If other behaviors are using a helper function, it is not deleted. Because the algorithm for deleting helper functions errs on the side of caution, Dreamweaver might occasionally leave an unused function in the user's document. What to do when an action requires a return value Sometimes an event handler must have a return value (for example, onMouseOver="window.status='This is a link'; return true"). But if Dreamweaver inserts the "return behaviorName(args)" action into the event handler, behaviors later in the list are skipped.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342
  • 343
  • 344
  • 345
  • 346
  • 347
  • 348
  • 349
  • 350
  • 351
  • 352
  • 353
  • 354
  • 355
  • 356
  • 357
  • 358
  • 359
  • 360
  • 361
  • 362
  • 363
  • 364
  • 365
  • 366
  • 367
  • 368
  • 369
  • 370
  • 371
  • 372
  • 373
  • 374
  • 375
  • 376
  • 377
  • 378
  • 379
  • 380
  • 381
  • 382
  • 383
  • 384
  • 385

DREAMWEAVER CS3
Extending Dreamweaver
231
How Behaviors work
When a user selects an HTML element in a Dreamweaver document and clicks the Plus (+) button on the Behaviors
panel, the following events occur:
1
Dreamweaver calls the
canAcceptBehavior()
function in each Action file to see whether this action is appro-
priate for the document or the selected element.
If the return value of this function is
false
, Dreamweaver dims the action in the Actions pop-up menu. (For
example, the Control Shockwave action is dimmed when the user’s document has no SWF files.) If the return value
is a list of events, Dreamweaver compares each event with the valid events for the currently selected HTML element
and target browser until it finds a match. Dreamweaver populates the Events pop-up menu with the matched event
from the
canAcceptBehavior()
function at the top of the list. If no match exists, the default event for the HTML
element (marked in the Event file with an asterisk [*]) becomes the top item. The remaining events in the menu are
assembled from the Event file.
2
The user selects an action from the Actions pop-up menu.
3
Dreamweaver calls the
windowDimensions()
function to determine the size of the Parameters dialog box. If the
windowDimensions()
function is not defined, the size is determined automatically.
A dialog box always appears, with OK and Cancel buttons at the right edge, regardless of the contents of the
body
element.
4
Dreamweaver displays a dialog box that contains the
BODY
elements of the Action file. If the Action file’s
body
tag
contains an
onLoad
handler, Dreamweaver executes it.
5
The user fills in the parameters for the action. Dreamweaver executes event handlers that are associated with the
form fields as the user encounters them.
6
The user clicks OK.
7
Dreamweaver calls the
behaviorFunction()
and
applyBehavior()
functions in the selected Action file. These
functions return strings that are inserted into the user’s document.
8
If the user later double-clicks the action in the Actions column, Dreamweaver reopens the Parameters dialog box
and executes the
onLoad
handler. Dreamweaver then calls the
inspectBehavior()
function in the selected Action
file, which fills in the fields with the data that the user previously entered.
Inserting multiple functions in the user’s file
Actions can insert multiple functions—the main behavior function plus any number of helper functions—into the
head section. Two or more behaviors can even share helper functions as long as the function definition is exactly the
same in each Action file. One way of ensuring that shared functions are identical is to store each helper function in
an external JavaScript file and insert it into the appropriate Action files using
<SCRIPT SRC="
externalFile
.js">
.
When the user deletes a behavior, Dreamweaver attempts to remove any unused helper functions that are associated
with the behavior. If other behaviors are using a helper function, it is not deleted. Because the algorithm for deleting
helper functions errs on the side of caution, Dreamweaver might occasionally leave an unused function in the user’s
document.
What to do when an action requires a return value
Sometimes an event handler must have a return value (for example,
onMouseOver="window.status='This is a
link'; return true"
). But if Dreamweaver inserts the
"return behaviorName(args)"
action into the event
handler, behaviors later in the list are skipped.