Behaviors

---原作《网猴》 编译《搜狐》
通过对"Objects"和"Inspectors"两项内容的操作,我们已经知道了Dreamweaver如何允许你在网页中添加复杂的HTML编码,那么对于JavaScript脚本又有何作用呢?这样就引入了"Behaviors"(行为)这一概念。当你希望图片指向、打开新窗口、更换框架、或添加任何其它利用JavaScript可以实现的时髦特效时,你就必须使用"Behaviors"。

在Dreamweaver最早的版本中你就可以找到"Behaviors"这个功能,它一直保持长久不衰的势头。与"Inspectors"和"Commands"经常会出现警告栏相比,"Behaviors"应该是Dreamweaver扩展功能元素中最稳定的。

创建你自己的Dreamweaver行为的第一个步骤是编写一些用户希望加入到网页中的JavaScript脚本。你是不是觉得这会很简单?而实际情况可能并不是这样,这个编写过程比你想象中要长得多,你需要通过"behavior"文档将JavaScript脚本插入网页中,而这需要一些特殊的编码技巧。

对于"Behaviors"来讲,任何有关文件对象模块的参照都应有函数自变数或有规划地来产生,进一步讲,任何可变化信息都需要有函数自变数,而且不能包含任何通用变量。另外你还应该注意一点,即你无法对能否呼叫"behavior"的HTML网页进行控制。

最后你可能因此而不得不修改原本非常精简的两行函数,变成冗长但更加灵活的编码。当你完成此项操作后,你应该尽可能对编写的最终JavaScript脚本在各种不同的浏览器和操作系统中进行检查。

"Behaviors"包含两个组件:"actions"和"events"。"Events"(事件)(如onClick, onMouseOver等)与你的网页中的HTML基本元素相连。在这里我们将不涉及创建事件的方法,因为你可能并不会过多地修改它们,除非例如当你使用XML(扩展标识语言)时才需要创建新的置标符,而更多的情况下你完全可以使用由Dreamweaver提供给你的许多事件。

Actions

"Actions"是"Behaviors"的具体内容,也是我们将重点关注的功能。"Actions"与我们前面提到的"Inspectors"非常相似,都是由HTML和JavaScript编码组成的。 Dreamweaver提供许多"actions",如果你希望查看这些行为,可以从"Windows"菜单栏中选择"Behaviors",然后点击"+"标志。其中每个"Behaviors"都在Configuration/Behaviors/Actions/子目录中有相应的文档。你可以把新的"Behaviors"放在这个子目录中或其下的任意子目录中形成不同的等级,而不必象对"Commands"和"Inspectors"那样对菜单文件进行复杂的处理。



好了,也许你已经厌倦了前面所讲的枯燥的理论,让我们还是快速地在Dreamweaver中使用"Behaviors"进行一次具体操作,从而更好地理解一下到底我们需要做哪些事。我们来创建一个"behaviors"文档,关于Webmonkey编码库WM_position2element()程序。如果你愿意,可以从我们的网站下载该文件,并把它放在Configuration/Behaviors/Actions/目录下的任意子目录中,将其命名为"position"。另外为了你的方便,你也可以在这里查看该文件内容。

假设我已经编写了一个HTML表单和JavaScript,可以引导用户进入某层,而我接下来需要向"action"文档添加的编码将会决定该"behavior"是否适合此网页。很明显的一点是我们不会喜欢无法兼容网页置标符的JavaScript脚本,而对于此编码,我们将放置一个层,这样只有网页源程序中带有<DIV>置标符时才会存在JavaScript脚本。

Dreamweaver通过执行canAcceptBehavior()函数来决定是否存在上述置标符。如果该函数返回一个真值,则表明可以使用"behavior",而如果返回值为假,则无法形成"behavior",一般该编码内容可能是这个样子:

function canAcceptBehavior(){



  var nameArray = dreamweaver.getObjectRefs
("NS 4.0","document","LAYER"); return (nameArray.length > 0); }
此函数将查找文本中是否有HTML对象,并为Netscape或Internet Explorer返回文本对象模块(DOM)参照。在本例中,你需要查看一个平台即Netscape 4.0,如果在页面中没有预置的元素(如"LAYER"),就不会有参照,而该函数也将返回一个假值。如果返回值为假,"action"将在"Behaviors"窗口中变灰而不可用。

如果网页中有"behavior",就会弹出HTML界面,而用户可以输入相应信息并点击确定。接下来一系列事件将会发生,我将在下面的章节进行详细介绍。

在此我还要给你提个醒,你可能已经注意到可下载的"behavior"版本的JavaScript脚本中并没有Dreamweaver父对象,这是因为该"behavior"是为Dreamweaver 1.2版编写的,而那时Dreamweaver中还没有JavaScript Objects。不过你完全可以参照getObjectRefs()函数,它能以相同的方式执行。你现在创建的任何"Behaviors"都会使用dreamweaver对象。