使用本主题了解如何在 Adobe Dreamweaver 中应用内置 JavaScript 行为。
使用内置行为
Dreamweaver 附带的行为已编写为可在现代浏览器中工作。这些行为在较旧的浏览器中将失败,并且不会产生任何后果。
Dreamweaver 操作经过精心编写,可在尽可能多的浏览器中工作。如果您手动删除 Dreamweaver 操作中的代码,或将其替换为您自己的代码,可能会失去跨浏览器兼容性。
尽管 Dreamweaver 操作的编写是为了最大化跨浏览器兼容性,但有些浏览器根本不支持 JavaScript,并且许多浏览网页的用户在其浏览器中关闭了 JavaScript。为了获得最佳跨平台效果,请提供包含在 <noscript> 标记中的替代界面,以便没有 JavaScript 的用户可以使用您的网站。
应用“调用 JavaScript”行为
调用 JavaScript 行为会在发生事件时执行自定义函数或 JavaScript 代码行。(您可以自己编写脚本,也可以使用 web 上各种免费提供的 JavaScript 库中的代码。)
例如,若要创建一个“后退”按钮,您可以键入 if (history.length > 0){history.back()}。 如果您已将代码封装在函数中,请仅键入函数名称(例如,hGoBack())。
应用改变属性行为
使用"更改属性"行为来更改对象属性之一的值(例如,div 的背景颜色或表单的操作)。
仅当您非常熟悉 HTML 和 JavaScript 时才使用此行为。
应用“检查插件”行为
使用"检查插件"行为根据访问者是否安装了指定插件将其发送到不同页面。例如,如果访问者安装了 Shockwave,您可能希望他们转到一个页面,如果没有安装,则转到另一个页面。
您无法使用 JavaScript 在 Internet Explorer 中检测特定插件。但是,选择 Flash 或 Director 将向您的页面添加适当的 VBScript 代码,以在 Windows 上的 Internet Explorer 中检测这些插件。Mac OS 上的 Internet Explorer 中不能实现插件检测。
您必须使用在 Netscape Navigator 的"关于插件"页面中以粗体显示的插件确切名称。(在 Windows 中,选择 Navigator 的"帮助">"关于插件"命令;在 Mac OS 中,从 Apple 菜单中选择"关于插件"。)
如果指定远程 URL,您必须在地址中包含 http:// 前缀。如果将字段留空,访问者将停留在同一页面上。
此选项仅适用于 Internet Explorer;Netscape Navigator 始终可以检测插件。
应用拖动 AP 元素行为
"拖动 AP 元素"行为可让访问者拖动绝对定位 (AP) 元素。使用此行为可创建拼图、滑块控件和其他可移动界面元素。
您可以指定访客可以拖动 AP 元素的方向(水平、垂直或任何方向)、访客应将 AP 元素拖动到的目标、如果 AP 元素在目标的一定像素范围内是否将 AP 元素捕捉到目标、当 AP 元素到达目标时要执行的操作等。
由于必须在访问者可以拖动 AP 元素之前调用"拖动 AP 元素"行为,因此您应该将"拖动 AP 元素"附加到 body 对象(使用 onLoad 事件)。
如果"拖动 AP 元素"不可用,您可能选择了一个 AP 元素。
不受限移动适合拼图和其他拖放游戏。对于滑块控件和可移动场景(如文件抽屉、窗帘和百叶窗),请选择受限移动。
值相对于 AP 元素的起始位置。要将移动限制在矩形区域内,请在所有四个框中输入正值。若要只允许垂直移动,\n请为"上"和"下"输入正值,为"左"和"右"输入 0。\n若要只允许水平移动,请为"左"和"右"输入正值,为"上"和"下"输入 0。
放置目标是您希望访问者将 AP 元素拖动到的位置。当 AP 元素的左坐标和上坐标与您在"左"和"上"框中输入的值匹配时,系统会认为该 AP 元素已到达放置目标。值相对于浏览器窗口的左上角。单击"获取当前位置"可自动使用 AP 元素的当前位置填充文本框。
较大的值可让访问者更容易找到放置目标。
当 AP 元素内的图像包含暗示拖动的元素(如标题栏或抽屉手柄)时,此选项很有用。如果您希望访客能够单击 AP 元素中的任何位置来拖动它,请不要设置此选项。
如果希望 AP 元素在被拖动时移动到堆叠顺序的前面,请选择"将元素置于前面"。如果选择此选项,请使用弹出菜单选择是将 AP 元素保留在前面还是将其还原到堆叠顺序中的原始位置。
在"调用 JavaScript"框中输入 JavaScript 代码或函数名称(例如,monitorAPelement()),以便在拖动 AP 元素时重复执行代码或函数。例如,您可以编写一个函数来监测 AP 元素的坐标,并在文本框中显示提示,如"您快要找到了"或"您距离放置目标还很远"。
收集有关可拖动的 AP 元素的信息
当\n您将拖动 AP 元素行为附加到对象时,Dreamweaver 会将 MM_dragLayer() 函数\n插入到文档的 head 部分。该函数保留了 AP 元素的旧命名约定[即"图层"],以便在早期版本的 Dreamweaver 中创建的图层仍可编辑。除了将 AP 元素注册为可拖拽外,此函数还为每个可拖拽的 AP 元素定义三个属性:MM_LEFTRIGHT、MM_UPDOWN 和 MM_SNAPPED,您可以在自己的 JavaScript 函数中使用这些属性来确定 AP 元素的相对水平位置、AP 元素的相对垂直位置以及 AP 元素是否已到达放置目标。
此处提供的信息仅适用于有经验的 JavaScript 程序员。
例如,以下函数在名为 curPosField 的表单字段中显示 MM_UPDOWN 属性的值(AP 元素的当前垂直位置)。(表单字段对于显示持续更新的信息很有用,因为它们是动态的——也就是说,您可以在页面完成加载后更改其内容。)
function getPos(layerId){
var layerRef = document.getElementById(layerId);
var curVertPos = layerRef.MM_UPDOWN;
document.tracking.curPosField.value = curVertPos;
}
您可以通过多种其他方式使用 MM_UPDOWN 或 MM_LEFTRIGHT 的值,而不是在表单字段中显示这些值。例如,您可以编写一个函数,根据值与放置区域的接近程度在表单字段中显示消息,或者您可以调用另一个函数来根据值显示或隐藏 AP 元素。
当页面上有多个 AP 元素,且所有元素都必须到达其目标位置后访问者才能继续进行下一页或任务时,读取 MM_SNAPPED 属性尤其有用。例如,您可以编写一个函数来统计有多少个 AP 元素的 MM_SNAPPED 值为 true,并在每次拖放 AP 元素时调用该函数。当捕捉计数达到所需数量时,您可以将访客转到下一页面或显示祝贺消息。
应用“转到 URL”行为
Go To URL 行为在当前窗口或指定帧中打开新页面。此行为对于通过一次点击更改两个或多个帧的内容非常有用。
在"打开位置"列表中会自动列出当前框架集中所有框架的名称以及主窗口。如果没有框架,主窗口是唯一选项。
如果任何框架被命名为 top、blank、self 或 parent,此行为可能会产生意外结果。浏览器有时会将这些名称误认为是保留的目标名称。
应用跳转菜单行为
当您使用"插入">"表单">"跳转菜单"创建跳转菜单时,Dreamweaver 会创建一个菜单对象并将跳转菜单(或跳转菜单转到)行为附加到该对象上。通常无需手动将跳转菜单行为附加到对象上。
您可以通过以下两种方式之一编辑现有跳转菜单:
您可以通过在"行为"面板中双击现有跳转菜单行为来编辑和重新排列菜单项、更改要跳转到的文件,以及更改打开这些文件的窗口。
您可以像编辑任何菜单中的项目一样编辑菜单中的项目,方法是选择菜单并使用"属性"检查器中的"列表值"按钮。
应用“跳转菜单转到”行为
"跳转菜单 Go"行为与"跳转菜单"行为密切\n相关;"跳转菜单 Go"让您可以将\nGo 按钮与跳转菜单关联。(在使用此行为之前,\n文档中必须已存在跳转菜单。)单击 Go 按钮会打开跳转菜单中选定的链接。跳转菜单通常不需要 Go 按钮;从跳转菜单选择项目通常会自动加载相应的 URL,无需进一步的用户操作。但是如果访客选择跳转菜单中已选的同一项目,则跳转不会发生。通常这不重要,但\n如果跳转菜单显示在帧中,并且跳转菜单项目链接\n到其他帧中的页面,Go 按钮通常很有用,可以让\n访问者重新选择已在跳转\n菜单中选择的项目。
当您将 Go 按钮与跳转菜单一起使用时,Go\n按钮将成为让用户"跳转"到与菜单中选择项目\n关联的 URL 的唯一机制。在跳转菜单中选择菜单项目\n不再自动将用户重定向到\n其他页面或帧。
应用打开浏览器窗口行为
使用\n"打开浏览器窗口"行为在新窗口中打开页面。\n您可以指定新窗口的属性,包括其大小、特性(是否可调整大小、是否有菜单栏等)以及名称。例如,您可以使用此行为在访问者单击缩略图\n图像时在单独窗口中打开较大图像;使用此行为,您可以使新窗口恰好为\n图像大小。
如果您没有为窗口指定属性,\n它将以打开它的窗口的大小和属性打开。为窗口指定任何属性会自动关闭所有其他未明确启用的属性。例如,如果您没有为窗口设置属性,它可能以\n1024 x 768 像素打开,并具有导航栏(展开"后退"、\n"前进"、"主页"和"重新加载"按钮)、位置工具栏(显示\nURL)、状态栏(在底部显示状态消息)和菜单\n栏(显示"文件"、"编辑"、"视图"和其他菜单)。如果您明确将宽度设置为 640、高度设置为 480 并且不设置其他属性,窗口将以 640 x 480 像素打开,没有工具栏。
应用弹出消息行为
"弹出消息"行为会显示\n包含您指定消息的 JavaScript 警报。因为 JavaScript\n警报只有一个按钮("确定"),所以请使用此行为向\n用户提供信息而不是提供选择。
您可以在文本中嵌入任何有效的 JavaScript 函数调用、属性、全局变量或其他表达式。要嵌入 JavaScript 表达式,请将其放在大括号 ({}) 内。要显示大括号,请在其前面加上反斜杠 (\{)。
示例:
此页面的 URL 是 {window.location},今天是 {new Date()}。
浏览器控制警报的外观。如果您希望更好地控制外观,请考虑使用"打开浏览器窗口"行为。
应用预先载入图像行为
"预加载图像"行为通过缓存在页面首次显示时未显示的图像(例如,将通过行为或脚本交换的图像)来缩短显示时间。
"交换图像"行为会在您选择"交换图像"对话框中的"预加载图像"选项时自动预加载所有亮显图像,因此在使用"交换图像"时您无需手动添加"预加载图像"。
应用“设置框架文本”行为
"设置帧文本"行为允许您动态设置帧的文本,用您指定的内容替换帧的内容和格式。内容可以包含任何有效的 HTML 代码。使用此行为可动态显示信息。
虽然"设置帧文本"行为会替换帧的格式,但您可以选择"保留背景颜色"来保留页面背景和文本颜色属性。
您可以在文本中嵌入任何有效的 JavaScript 函数调用、属性、全局变量或其他表达式。要嵌入 JavaScript 表达式, 请将其放在大括号内({})。要显示大括号, 请在其前面加上反斜杠(\{)。
示例:
此页面的 URL 是 {window.location},今天是 {new Date()}。
应用"设置容器文本"\n行为
"设置容器文本"行为会将页面上现有容器(即任何可以包含文本或其他元素的元素)的内容和格式替换为您指定的内容。 该内容可以包括任何有效的 HTML 源代码。
您可以在文本中嵌入任何有效的 JavaScript 函数调用、属性、全局变量或其他表达式。要嵌入 JavaScript 表达式,请将其放在大括号内({})。若要显示大括号,请在其前面加上反斜杠 (\{)。
示例:
该页面的 URL 是 {window.location},今天是 {new Date()}。
应用"设置状态栏文本"\n行为
"设置状态栏文本"行为会在浏览器窗口左下角的状态栏中显示消息。例如,您可以使用此行为在状态栏中描述链接的目标,而不是显示与其关联的 URL。访问者经常忽略或遗漏状态栏中的消息(并且并非所有浏览器都完全支持设置状态栏文本);如果您的消息很重要,请考虑将其显示为弹出消息或 AP 元素的文本。
如果您在 Dreamweaver 中使用"设置状态栏文本"行为,则不能保证浏览器中的状态栏文本会更改,因为某些浏览器在更改状态栏文本时需要特殊调整。例如,Firefox 需要您更改一个高级选项,以便 JavaScript 能够更改状态栏文本。有关详细信息,请参阅浏览器的文档。
您可以在文本中嵌入任何有效的 JavaScript 函数调用、属性、全局变量或其他表达式。要嵌入 JavaScript 表达式,请将其放在大括号 ({}) 内。要显示大括号,请在其前面加上反斜杠 (\{)。
示例:
此页面的 URL 是 {window.location},今天是 {new Date()}。
键入的消息应简明扼要。 如果消息在状态栏中放不下,浏览器会截断该消息。
应用"设置文本字段文本"行为
"设置文本字段文本"行为会将表单文本字段的内容替换为您指定的内容。
您可以在文本中嵌入任何有效的 JavaScript 函数调用、属性、全局变量或其他表达式。要嵌入 JavaScript 表达式,请将其放在大括号 ({}) 内。若要显示大括号,请在它前面加一个反斜杠 (\{)。
示例:
此页面的 URL 是 {window.location},今天是 {new Date()}。
创建命名的文本域
如果 Dreamweaver 提示您添加一个表单标签,请单击“是”。
应用设置文本域文字
应用显示-隐藏元素行为
“显示-隐藏元素”行为可以显示、隐藏或恢复一个或多个页面元素的默认可见性。此行为在用户与页面交互时显示相关信息非常有用。例如,当用户将指针移动到植物图像上时,您可以显示一个页面元素,提供有关该植物生长期和产区、光照需求、生长体量等详细信息。此行为仅显示或隐藏相关元素 - 当元素被隐藏时,它并不会真正从页面流中移除。
如果“显示-隐藏元素”选项不可用,可能是因为您选中了 AP 元素。由于 AP 元素在 4.0 版本的浏览器中均不接受事件,因此您必须选择其他对象 - 例如 <body> 标签或某个链接 (<a>) 标签。
此行为自 Dreamweaver CS5 起已弃用。
应用交换图像行为
“交换图像”行为通过更改 <img> 标签的 src 属性来替换图像。使用此行为可以创建按钮翻转效果及其他图像效果(包括一次交换多个图像)。插入翻转图像会自动在您的页面中添加“交换图像”行为。
由于此行为仅影响 src 属性,因此您应换入一张与原图尺寸(高度和宽度)相同的图像。否则,换入的图像会缩小或扩大以适应原图的尺寸。
此外还有一个“恢复交换图像”行为,它可以将最后一组交换的图像恢复为之前的源文件。每当您为对象附加“交换图像”行为时,此行为都会自动添加;如果您在附加“交换图像”时保持勾选“恢复”选项,则无需手动选择“恢复交换图像”行为。
为图像命名并非必须;当您将行为附加到对象时,系统会自动为图像命名。但是,如果您预先为所有图像命名,则更容易在"交换图像"对话框中区分图像。
这样可以防止图像出现时的下载延迟。
应用检查表单行为
"验证表单"行为检查指定文本字段的内容,以确保用户输入了正确类型的数据。将此行为附加到带有 onBlur 事件的各个文本字段,以在用户填写表单时验证字段,或将其附加到带有 onSubmit 事件的表单,以在用户单击"提交"按钮时同时评估多个文本字段。将此行为附加到表单可防止提交包含无效数据的表单。
重复此步骤以插入其它文本域。
要在用户填写表单时验证各个字段,请选择一个文本字段并选择"窗口">"行为"。
要在用户提交表单时验证多个字段,请单击"文档"窗口左下角标记选择器中的 <form> 标记,然后选择"窗口">"行为"。
如果您正在验证各个字段,请从"字段"列表中选择您在"文档"窗口中选择的同一字段。
如果您正在验证多个字段,请从"字段"列表中选择一个文本字段。
使用任何数据
检查必需字段是否包含数据;数据可以是任何类型。
使用电子邮件地址
检查域中包含一个 @ 符号。
使用数字
检查域中只包含数字。
使用数字从
检查字段是否包含特定范围内的数字。
如果您在用户提交表单时验证多个字段,onSubmit 事件将自动出现在"事件"菜单中。
当用户离开字段时,这两个事件都会触发"验证表单"行为。区别在于onBlur无论用户是否在字段中输入都会触发,而onChange仅在用户更改了字段内容时才会触发。如果字段是必填项,则首选 onBlur 事件。