JS中手動觸發事件的方法

2021-06-21 13:55:13 字數 2025 閱讀 1088

try

catch(e)

如果大家將一張網頁看成乙個form的話,大致上就成了乙個web form的模型。在win form 下要想手動觸發某乙個物件的事件是很簡單的,只要傳送一條訊息即可達成。(postmessage) 但是網頁並不是基於訊息機制的,如果我們想在一張網頁上寫出乙個類似於按鍵精靈的功能該如何實現呢?

為大家介紹js下的幾個方法:

1. createevent(eventtype)

引數:eventtype 共5種型別:

events :包括所有的事件.

htmlevents:包括 'abort', 'blur', 'change', 'error', 'focus', 'load', 'reset', 'resize', 'scroll', 'select',

'submit', 'unload'. 事件

uieevents :包括 'domactivate', 'domfocusin', 'domfocusout', 'keydown', 'keypress', 'keyup'.

間接包含 mouseevents.

mouseevents:包括 'click', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup'.

mutationevents:包括 'domattrmodified', 'domnodeinserted', 'domnoderemoved',

'domcharacterdatamodified', 'domnodeinsertedintodocument',

'domnoderemovedfromdocument', 'domsubtreemodified'.

2. 在createevent後必須初始化,為大家介紹5種對應的初始化方法

htmlevents 和 通用 events:

initevent( 'type', bubbles, cancelable )

uievents :

inituievent( 'type', bubbles, cancelable, windowobject, detail )

mouseevents:

initmouseevent( 'type', bubbles, cancelable, windowobject, detail, screenx, screeny,

clientx, clienty, ctrlkey, altkey, shiftkey, metakey, button, relatedtarget )

mutationevents :

initmutationevent( 'type', bubbles, cancelable, relatednode, prevvalue, newvalue,

attrname, attrchange )

3. 在初始化完成後就可以隨時觸發需要的事件了,為大家介紹targetobj.dispatchevent(event)

使targetobj物件的event事件觸發

需要注意的是在ie 5.5+版本上請用fireevent方法,還是瀏覽相容的考慮

4. 例子

//例子1  立即觸發滑鼠被按下事件

var fireonthis = document.getelementbyid('someid');

var evobj = document.createevent('mouseevents');

evobj.initmouseevent( 'click', true, true, window, 1, 12, 345, 7, 220, false, false, true, false, 0, null );

fireonthis.dispatchevent(evobj);

//例子2  考慮相容性的乙個滑鼠移動事件

var fireonthis = document.getelementbyid('someid');

if( document.createevent )

else if( document.createeventobject )

js手動觸發事件

doctype html en utf 8 js手動觸發事件 title window.onload function downloadevt.initevent click true false oa.dispatchevent downloadevt else if document.creat...

js手動觸發事件dispatchEvent

如果大家將一張網頁看成乙個form的話,大致上就成了乙個web form的模型。在win form 下要想手動觸發某乙個物件的事件是很簡單的,只要傳送一條訊息即可達成。postmessage 但是網頁並不是基於訊息機制的,如果我們想在一張網頁上寫出乙個類似於按鍵精靈的功能該如何實現呢?為大家介紹js...

Jquery手動觸發事件

有時可能需要用 機械式的觸發乙個按鈕 文字框或網頁中其他控制項的一些事件,這個在登入的時候很常用,登入介面通常有三個文字框 使用者名稱 密碼和驗證碼,另外還有乙個登入按鈕,很多時候我們想實現每當乙個文字框失去焦點的時候和後台互動查詢使用者名稱是否存在 密碼是否正確以及驗證碼是否正確等,但同時會有另外...