激活一個(gè)自定義事件。
Behavior.fireEvent(sEvent[, oEvent])
注意 在缺省情況下, 由 Behavior 處理程序說明的屬性和方法是自動(dòng)添加到全局的腳本命名空間,并不必引用 Behavior 處理程序 ID 就可以訪問這些屬性和方法。在這種情況下,不必象語法中所示的那樣使用 Behavior.fireEvent,只需簡單地用 fireEvent 就可以在腳本中使用該屬性。詳細(xì)信息請(qǐng)參閱<implements> 元素。
同一個(gè)事件對(duì)象不能重復(fù)用于多個(gè)對(duì) fireEvent 方法的調(diào)用。
下面的腳本部件片段是從假定的 calculator 腳本部件中摘出來的。只要結(jié)果被更改,該腳本部件就會(huì)給頁面激活自定義的 onResultChange 事件,并作為該事件對(duì)象的 expando 屬性傳遞該結(jié)果。
注意 CDATA 項(xiàng)是必需的,以使 <script> 元素中的腳本成為不透明的。詳細(xì)信息請(qǐng)參閱腳本部件文件和 XML 一致性。
<component> <public> <event name="onResultChange" /> </public> <implements type="Behavior"> <attach event="onclick" handler="doCalc"); </implements> <script language="JScript"> <![CDATA[ function doCalc(){ // 此處為進(jìn)行計(jì)算的代碼。 // 結(jié)果寫入 sResult 變量。 oEvent = createObjectEvent(); oEvent.result = sResult; fireEvent("onResultChange",oEvent); } ]]> </script> </component>
下面演示了包含了 DHTML 的頁面的樣式。在 onResultChange 事件被激活時(shí),就從 window.event 對(duì)象的 expando result
屬性提取出計(jì)算結(jié)果,并在 resultWindow <DIV> 元素中顯示該結(jié)果。
<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>