創(chuàng)建一個(gè) DHTML 事件對(duì)象,在調(diào)用 fireEvent 方法時(shí),將用該對(duì)象將事件的上下文信息傳遞給包含文檔。
oEvent = behavior.createEventObject()
注意 在缺省情況下, createEventObject 方法具有全局范圍,且不必引用 Behavior 處理程序 ID 就可以訪問(wèn)該方法。例如,不必按語(yǔ)法所示的那樣使用 Behavior.createEventObject,只需按調(diào)用 createEventObject 函數(shù)一樣來(lái)調(diào)用該函數(shù)。詳細(xì)信息請(qǐng)參閱 <implements> 元素。
同一個(gè)事件對(duì)象不能被多個(gè) fireEvent 調(diào)用。
下面的腳本部件片段是從假定的 calculator 腳本部件中摘出來(lái)的。只要結(jié)果被更改,該腳本部件就會(huì)給頁(yè)面激活自定義的 onResultChange 事件,并作為該事件對(duì)象的 expando 屬性傳遞該結(jié)果。
注意 CDATA 項(xiàng)是必需的,以使 <script> 元素中的腳本成為不透明的。詳細(xì)信息請(qǐng)參閱腳本部件文件和 XML 一致性。
<component> <implements type="Behavior"> <event name="onResultChange"/> </implements> <script language="JScript"> <![CDATA[ attachEvent("onclick", doCalc); function doCalc() { // 此處為用于計(jì)算的編碼。 // 結(jié)果寫入 sResult 變量。 oEvent = createEventObject(); oEvent.result = sResult; fireEvent("onResultChange",oEvent); } ]]> </script> </component>
下面演示了包含了 DHTML 的頁(yè)面的樣式。在 onResultChange 事件被激活時(shí),就從 DHTML 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>