激活一个自定义事件。
Behavior.fireEvent(sEvent[, oEvent])
注意 在缺省情况下, 由 Behavior 处理程序说明的属性和方法是自动添加到全局的脚本命名空间,并不必引用 Behavior 处理程序 ID 就可以访问这些属性和方法。在这种情况下,不必象语法中所示的那样使用 Behavior.fireEvent,只需简单地用 fireEvent 就可以在脚本中使用该属性。详细信息请参阅<implements> 元素。
同一个事件对象不能重复用于多个对 fireEvent 方法的调用。
下面的脚本部件片段是从假定的 calculator 脚本部件中摘出来的。只要结果被更改,该脚本部件就会给页面激活自定义的 onResultChange 事件,并作为该事件对象的 expando 属性传递该结果。
注意 CDATA 项是必需的,以使 <script> 元素中的脚本成为不透明的。详细信息请参阅脚本部件文件和 XML 一致性。
<component> <public> <event name="onResultChange" /> </public> <implements type="Behavior"> <attach event="onclick" handler="doCalc"); </implements> <script language="JScript"> <![CDATA[ function doCalc(){ // 此处为进行计算的代码。 // 结果写入 sResult 变量。 oEvent = createObjectEvent(); oEvent.result = sResult; fireEvent("onResultChange",oEvent); } ]]> </script> </component>
下面演示了包含了 DHTML 的页面的样式。在 onResultChange 事件被激活时,就从 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>