當事件發生時,會動態產生一個 event 物件,事件操控器可以由此物件讀取事件的資訊。
設定基本事件組(Event, HTMLEvents)之事件的初值,此事件必須先用 createEvent() 產生。在發動(dispatch)事件前,要先設定事件的初值。其語法是:
事件.initEvent(型態, 上傳旗, 取消旗)
- 型態:物件型態名稱。基本事件組有以下型態:abort, change, error, load, reset, resize, scroll, select, submit, unload。
- 上傳旗:設為 true,則事件可以向上傳遞。
- 取消旗:設為 true,則事件可以取消。
- 程式用法:
<script type='text/javascript'>
function initEventDM()
{
var eo=document.getElementById("ievt");
if( window.outerWidth == undefined )
{
eo.fireEvent("onchange");
}
else
{
var vo = document.createEvent("Event");
vo.initEvent("change", true, true);
eo.dispatchEvent( vo );
}
}
</script>
<a href='javascript:initEventDM()'>
點此模擬右邊元素 onchange</a> / / / /
<input id='ievt' onchange=
'alert("改變了")' size=16> - 執行結果:
點此模擬右邊元素 onchange / / / /
- 上例中,IE 用 fireEvent();Firefox, Safari, Chrome 用 dispatchEvent()。
設定鍵盤事件組(KeyboardEvent)之事件的初值,此事件必須先用 createEvent() 產生。在發動(dispatch)事件前,要先設定事件的初值。其語法是:
事件.initKeyEvent (型態, 上傳旗, 取消旗, viewArg, ctrlKeyArg, altKeyArg, shiftKeyArg, metaKeyArg, keyCodeArg, charCodeArg)
- 型態:物件型態名稱。鍵盤事件組有以下型態:keydown, keyup。
- 上傳旗:設為 true,則事件可以向上傳遞。
- 取消旗:設為 true,則事件可以取消。
- viewArg:指定 UIEvent.view。可設為 null。
- ctrlKeyArg, altKeyArg, shiftKeyArg, metaKeyArg:設定組合鍵,可設為 true, false。
- keyCodeArg:設定按鍵碼。
- charCodeArg:設定獨角碼。
- 程式用法:
<script type='text/javascript'>
function initKeyEventDM()
{
var eo=document.getElementById("ikevt");
if( window.outerWidth == undefined )
{
eo.fireEvent("onkeydown");
}
else
{
var vo = document.createEvent("KeyboardEvent");
vo.initKeyEvent("keydown", true, true, null, false, true, false, false, 9, 0);
eo.dispatchEvent( vo );
}
}
</script>
<a href='javascript:initKeyEventDM()'>
點此模擬右邊元素 onkeydown</a> / / / /
<input id='ikevt' onkeydown=
'alert( event.altKey +" / "+ event.keyCode )' size=16> - 執行結果:
點此模擬右邊元素 onkeydown / / / /
- 上例中,IE 用 fireEvent();Firefox 用 dispatchEvent();Safari, Chrome 沒支援。
設定滑鼠事件組(MouseEvent, MouseEvents)之事件的初值,此事件必須先用 createEvent() 產生。在發動(dispatch)事件前,要先設定事件的初值。其語法是:
事件.initMouseEvent(型態, 上傳旗, 取消旗, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget);
- 型態:物件型態名稱。滑鼠事件組有以下型態:click, dblclick, mousedown, mouseup, mouseover, mousemove, mouseout。
- 上傳旗:設為 true,則事件可以向上傳遞。
- 取消旗:設為 true,則事件可以取消。
- view:指定抽象視區。可設為 window。
- detail:設定滑鼠按鍵次數。
- screenX, screenY:設定螢幕座標。
- clientX, clientY:設定展現區座標。
- ctrlKeyArg, altKeyArg, shiftKeyArg, metaKeyArg:設定組合鍵,可設為 true, false。
- button:滑鼠鍵。
- relatedTarget:次目標。
- 程式用法:
<script type='text/javascript'>
function initMouseEventDM()
{
var eo=document.getElementById("imevt");
if( window.outerWidth == undefined )
{
eo.fireEvent("onclick");
}
else
{
var vo = document.createEvent("MouseEvent");
vo.initMouseEvent("click", true, true, window,
0, 0, 0, 11, 22, true, false, false, false, 0, null);
eo.dispatchEvent( vo );
}
}
</script>
<a href='javascript:initMouseEventDM()'>
點此模擬右邊元素 onclick</a> / / / /
<span id='imevt' onclick=
'alert( event.clientX +" / "+ event.clientY +" / "+ event.ctrlKey)'>
別點我</span> - 執行結果:
點此模擬右邊元素 onclick / / / / 別點我
- 上例中,IE 用 fireEvent();Firefox, Safari, Chrome 用 dispatchEvent()。