动态 HTML 中的事件

动态HTML对象模型中的绝大多数事件和Visual Basic编程模型中的事件相似。但是,事件的名字经常稍有不同。动态HTML中所有事件的名字以“On”开头。通过在这个前缀下查找它们可以找出绝大多数公用的事件。例如,Visual Basic的click事件对应onclick,load对应onload,等等。

详细信息 关于通过动态HTML对象模型在HTML页面中可以使用的属性、方法和事件的全部列表,请参阅Internet Client SDK中“动态 HTML”部分的“文档对象模型”。

Visual Basic 事件与动态HTML事件

这一节下面列出了 Visual Basic 中比较常用的一些事件以及它们在动态HTML相互对应的事件,以及使用它们时需要的附加信息。

键盘事件

动态HTML中的键盘事件和Visual Basic中的键盘事件密切对应。下面的表格列出了公用的Visual Basic键盘事件和它们对应的动态HTML事件:

Visual Basic事件 DHTML事件 注释
keydown onkeydown 当一个键被按下时激发。
keypress onkeypress 当一个用户的键盘输入被转换为一个字符时激发。
keyup onkeyup 当一个用户释放一个键时激发。

当一个键盘事件发生时,动态HTML事件对象的keycode属性中包含对应键的Unicode键盘编码。altKey、ctrlKey和shiftKey属性指定了ALT、CTRL和SHIFT键的状态。通过更改keycode属性的值或返回一个整数值,可以更改与事件相关联的键。通过返回0或false可以取消这个事件。

鼠标事件

动态HTML中的鼠标事件和Visual Basic中的鼠标事件密切对应。下面的表格中列出了公用的Visual Basic鼠标事件以及和它们相互对应的动态HTML鼠标事件:

Visual Basic事件 DHTML相同的事件 注释
click onclick 除了当用户单击一个元素时发生外,当用户在一个可接收焦点的元素上(如一个按钮)按ENTER时也可以激发这个事件。
doubleclick ondblclick 这个事件工作和其Visual Basic对应事件相似。

mousedown, mouseup, mousemove
onmouseout, onmousedown, onmouseup, onmousemove, onmouseover 当在元素之间移动时,onmouseout事件首先激发,表示鼠标已离开原来元素。然后onmousemove事件激发,表示鼠标已经移动。最后,onmouseover事件激发,表示鼠标已经进入到新的元素。

当一个鼠标事件发生时,事件对象的button属性标识那个鼠标按钮是按下的(如果有的话)。x和y属性指定在事件发生时鼠标的位置。对于onmouseover和onmouseout事件,toElement和fromElement属性指定鼠标移到和移开的元素。

焦点和选定事件

动态HTML中的焦点和选定事件和它们的Visual Basic对应的事件稍有不同。尤其是,焦点事件只能被某些元素调用,选择和拖动是不同的处理。下面的表格列出了公用的Visual Basic 焦点和选定事件以及它们对应的动态HTML事件:

Visual Basic事件 DHTML相同的事件 注释
gotfocus onfocus 当用户移动到一个可以接受输入的元素时激发,比如一个按钮或窗体元素。
lostfocus onblur 当从一个可以接受输入的元素移开时激发。
selchange onselectstart

onselect

当一个选择第一次被初始化时—例如,当用户在文档中单击一个字符或对象时,onselectstart事件激发。当用户更改该选择时—例如,当按下鼠标按钮在文档的一部分中移动时,Onselect事件激发。
dragdrop, dragover ondragstart 当用户第一次开始拖动选择时激发。缺省操作是准备将选择复制到另外一个元素。

注意 无论在页面的元素之间移动,还是在帧之间移动,甚至在桌面的应用程序之间移动,Onblur和onfocus事件都激发。例如,如果聚焦在一个页面元素上,用户切换到另一个应用程序中,对那个元素激发onblur事件,当用户切换回来时,onfocus事件激发。

其它事件

Visual Basic Event DHTML 相同的事件 注释
change onchange 当用户按 tab 键从一个元素离开或在一个元素上按ENTER键,离开该键时 Onchange 激发。在 Visual Basic 中,一旦用户在控件中执行任何操作时,该更改事件激发。
close -- 对于这个事件没有直接对应的事件存在。
error onerror 当加载一个图象或其它元素过程中发生一个错误时激发,或当一个脚本错误发生时激发。
initialize onready
statechange
当页面从初始化改到到交互方式的、以及从交互方式的改变到加载的时激发。一旦用户可以通过滚动或者是单击锚点和元素同它进行交互时,页面成为交互方式的。当所有的内容已经被下载时,一个页面是被加载的。
load onload 在文档被加载和页面上所有元素被完全下载后激发。
paint -- 对这个事件没有直接相同的事件存在。
resize onresize 这个动态HTML事件的功能和其Visual Basic对应事件相似,但是,不需要编写代码来调整一个HTML页面的大小,如同对一个Visual Basic窗体所做的那样。在HTML中调整大小是自动发生的。
scroll onscroll 无论什么时候页面的滚动框或其中的任何元素被重新定位时激发。
terminate -- 对于这个事件没有直接的相同事件存在。可以在 onunload事件中执行终止类型的操作。

对于DHTMLPage对象terminate事件不存在。这个对象不是动态HTML对象模型中的一部分,它是Visual Basic中特有的。

unload onunload 在文档将被卸载之前(当漫游到另外的文档时)立即激发。

动态HTML特有的事件

另外,有些动态HTML事件在Visual Basic中没有相同的事件。在下面的表格中给出了几个比较令人感兴趣的:

DHTML事件 用法
onabort 当用户通过按“停止”按钮中止一个图象或一个页面元素的下载时激发。
onreset 当用户在窗格上选择一个“重新设置”按钮时激发
onsubmit 当用户在表格上选择一个“提交”按钮时激发。在向服务器发送数据之前可用来在客户端执行数据的验证。

详细信息 关于动态HTML事件的详细信息,请参阅Internet Client SDK中“参考文档对象模型”部分的“事件”。