激活一個(gè)自定義事件。
Behavior.fireEvent(sEvent[, oEvent])
注意 在缺省情況下, 由 Behavior 處理程序說明的屬性和方法是自動(dòng)添加到全局的腳本命名空間,并不必引用 Behavior 處理程序 ID 就可以訪問這些屬性和方法。在這種情況下,不必象語法中所示的那樣使用 Behavior.fireEvent,只需簡(jiǎn)單地用 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>