扩展什么?

---原作《网猴》 编译《搜狐》
对Dreamweaver的扩展基本上是指特殊的网页效果,如JavaScript脚本等,扩展内容主要有四种类型--"Objects"(对象)、"Commands"(指令)、"Inspectors"(检查器)和"Behaviors"(行为)。如果你查看一下Dreamweaver 2.0的配置目录,就会发现与上述四项内容对应的子目录,新创建的网页将分别存储在这些目录中。 本教程将分别向你介绍上述四项基本内容,但在谈及"Objects"的具体内容之前,我们需要首先介绍一些背景知识。

W3C DOM

Dreamweaver拥有自己独立的内部文件对象模块(DOM),其中也包括了对Netscape 4.0文件对象模块和中立性浏览器标准组织“万维网联盟”(W3C)发布的文件对象模块。虽然由Dreamweaver推出的此套DOM标准也尽量保持了兼容性,但实际还是需要你对其具体内容有所了解。

讨论万维网联盟的文件对象模块这一专题可能会需要很大的篇幅,因此在这里我们仅涉及一小部分内容。

万维网联盟的文件对象模块最主要的核心架构涉及“节点”(node)这个概念。每个置标符都是一个节点,如<HTML>,<H3>,<IMG>等,节点又分为不同的类别"nodeType",如Node.DOCUMENT_NODE,Node.ELEMENT_NODE, Node.COMMENT_NODE或Node.TEXT_NODE,位于节点内的节点则被称为子节点"ChildNodes"。恐怕你已经被这些概念搞糊涂了,不过下面的这个例子可能会对于你提高理解有所帮助。
;<HTML>

<BODY>

<H2>bo bo ruler</H2>

<!--really,he does -->

</BODY>

</HTML>

在本例中,<HTML>置标符是最外层节点,它的节点类型是DOCUMENT,它下面又包含一个子节点序列<BODY>置标符。而<BODY>置标符是一个节点类型为ELEMENT的节点,它也包含一个子节点序列,但有两个基本内容,一个是节点类型为ELEMENT的<H2>部分,一个是节点类型为COMMENT的评述部分。<BODY>的父节点是<HTML>节点。不知通过此例,现在你是否对上面所讲的概念有了清楚的理解?

节点有几项非常有用的特性,在Dreamweaver提供的说明文档中有详细的介绍。其中最有价值的是内层HTML特性,它可以方便地实现在置标符内抓取文本的操作,而另一个特性tagName,可以帮助你自动添加对应置标符,如为<P>置标符返回"P",为<BODY>置标符返回"BODY"。另外还有一些用于控制节点级别的方法,我们会在教程中一一给与讲解,当前你只需了解节点的基础知识。

Dreamweaver API

Dreamweaver另一项编码特性是你会始终处理两项独立的文本:扩展文本(包括Object, Command, Inspector或Action)以及Dreamweaver编辑的实际文本(如你正在制作的网页),有时你可能会被这两个概念搞糊涂。 例如,你如何通过"Command"指令对编辑的网页内容进行修改?为了实现这一点,Dreamweaver提供了一系列独有的方法,允许你完成自己希望实现的目标。例如,请查看下面这个JavaScript脚本:

var entireDocument = dreamweaver.getDocumentDOM("document");

var thisSelection = dreamweaver.getSelection();

alert(entireDocument.documentElement.outerHTML
.substring(thisSelection[0], thisSelection[1]));

如果上述脚本被置于一个扩展文档中运行,就会弹出一个警告框,其中的内容可以任意从Dreamweaver文本窗口中选择,例如你可以使用"getSelection()"方法来编写一条指令,将选中的文本内容全部改为大写,并在第二部分指令中填写更多的内容。起初你可能会对这种处理扩展文件主文本的方式有些困惑,特别是如果你已经习惯使用固定的浏览器时,但当你真正开始编写自己的扩展信息时,你就会逐渐理解它的好处。

请记住,我们共有四类不同的扩展性文件:Objects, Inspectors, Behaviors和Commands,由于扩展Objects更为直接简易,因此我们将首先从该内容入手,学习创建真正有用的对象所需的各项步骤。如果你仍不熟悉Dreamweaver软件中的Objects面板,就应该首先学习Taylor编写的Dreamweaver教程。