创建一个 DHTML 事件对象,在调用 fireEvent 方法时,将用该对象将事件的上下文信息传递给包含文档。
oEvent = behavior.createEventObject()
注意 在缺省情况下, createEventObject 方法具有全局范围,且不必引用 Behavior 处理程序 ID 就可以访问该方法。例如,不必按语法所示的那样使用 Behavior.createEventObject,只需按调用 createEventObject 函数一样来调用该函数。详细信息请参阅 <implements> 元素。
同一个事件对象不能被多个 fireEvent 调用。
下面的脚本部件片段是从假定的 calculator 脚本部件中摘出来的。只要结果被更改,该脚本部件就会给页面激活自定义的 onResultChange 事件,并作为该事件对象的 expando 属性传递该结果。
注意 CDATA 项是必需的,以使 <script> 元素中的脚本成为不透明的。详细信息请参阅脚本部件文件和 XML 一致性。
<component> <implements type="Behavior"> <event name="onResultChange"/> </implements> <script language="JScript"> <![CDATA[ attachEvent("onclick", doCalc); function doCalc() { // 此处为用于计算的编码。 // 结果写入 sResult 变量。 oEvent = createEventObject(); oEvent.result = sResult; fireEvent("onResultChange",oEvent); } ]]> </script> </component>
下面演示了包含了 DHTML 的页面的样式。在 onResultChange 事件被激活时,就从 DHTML window.event 对象的 expando result
属性提取出计算结果,并在 resultWindow <DIV> 元素中显示该结果。
<HTML> <HEAD> <xml:namespace prefix="LK" /> <style> LK\:CALC {behavior:url(engine.wsc)} </style> <script language="JScript"> function showResults(){ resultWindow.innerText=window.event.result; } </script> </HEAD> <LK:CALC id="myCalc" onResultChange="showResults()"> <TABLE> <TR> <DIV ID=resultWindow STYLE="border: '.025cm solid gray'" ALIGN=RIGHT>0.</DIV> </TR> <TR> <TD><INPUT TYPE=BUTTON VALUE=" 0 "></TD> <TD><INPUT TYPE=BUTTON VALUE="+/-"></TD> <TD><INPUT TYPE=BUTTON VALUE=" . "></TD> <TD><INPUT TYPE=BUTTON VALUE=" + "></TD> <TD><INPUT TYPE=BUTTON VALUE=" = "></TD> <TR> </TABLE> </LK:CALC> </HTML>