創(chuàng)建一個(gè) DHTML 事件對(duì)象,在調(diào)用 fireEvent 方法時(shí),將用該對(duì)象將事件的上下文信息傳遞給包含文檔。
oEvent = behavior.createEventObject()
注意 在缺省情況下, createEventObject 方法具有全局范圍,且不必引用 Behavior 處理程序 ID 就可以訪問該方法。例如,不必按語(yǔ)法所示的那樣使用 Behavior.createEventObject,只需按調(diào)用 createEventObject 函數(shù)一樣來調(diào)用該函數(shù)。詳細(xì)信息請(qǐng)參閱 <implements> 元素。
同一個(gè)事件對(duì)象不能被多個(gè) fireEvent 調(diào)用。
下面的腳本部件片段是從假定的 calculator 腳本部件中摘出來的。只要結(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>