JavaScript事件(createEvent,initEvent,dispatchEvent)

 function DoClick()  
    {  
       if(document.all){
          document.getElementById("a3").click();    
        }        
     else
    {
      var evt = document.createEvent("MouseEvents");
       evt.initEvent("click",true,true);
       document.getElementById("a3").dispatchEvent(evt);
     }  
   }   

void initEvent(String eventTypeArg, boolean canBubbleArg, boolean cancelableArg)

initEvent 方法用于初始化通过 DocumentEvent 接口创建的 Event 的值。此方法只能在通过 dispatchEvent 方法指派 Event 之前调用,尽管在该阶段可以多次调用它(如有必要)。如果被多次调用,则最后一次调用优先。如果从 Event 接口的子类调用,则只修改在 initEvent 方法中指定的值,所有其他属性保持不变。

参数: eventTypeArg - 指定事件类型。此类型可以是当前在此规范中定义的任何事件类型,或是一个新的事件类型。该字符串必须是 XML 名称。任何新的事件类型一定不能以字符串 "DOM" 的大写、小写或混合大小写版本开头。此前缀是为以后的 DOM 事件集保留的。还强烈推荐添加自己的事件的第三方使用自己的前缀以避免混淆,降低与其他新的事件发生冲突的可能性。 canBubbleArg - 指定该事件是否可以 bubble。 cancelableArg - 指定是否可以阻止事件的默认操作.

下表列出了 eventType 的合法值和每个值创建的事件接口:

参数事件接口初始化方法
HTMLEventsHTMLEventinitEvent()
MouseEventsMouseEventinitMouseEvent()
UIEventsUIEventinitUIEvent()

用该方法创建了 Event 对象以后,必须用上表中所示的初始化方法初始化对象。

建立 Event 物件

使用 document.createEvent (eventType) 來建立 Event 事件。 其中的 eventType 參數(字串)有以下幾種: Events 包含所有的 event types。

HTMLEvents

包括「abort」、「blur」、「change」、「error」、「focus」、「load」、「reset」、「resize」、「scroll」、「select」、「submit」和「unload」。

UIEvents

包括「DOMActivate」、「DOMFocusIn」、「DOMFocusOut」、「keydown」、「keypress」和「keyup」。

MouseEvents

包括「click」、「mousedown」、「mousemove」、「mouseout」、「mouseover」和「mouseup」。

MutationEvents

包 括「DOMAttrModified」、「DOMNodeInserted」、「DOMNodeRemoved」、 「DOMCharacterDataModified」、「DOMNodeInsertedIntoDocument」、 「DOMNodeRemovedFromDocument」和「DOMSubtreeModified」。

初始化 Event 物件

Event 物件有下列四種初始方法。 Events 和 HTMLEvents 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 )

使用 dispatchEvent(eventObj) 來觸發事件

執行要被觸發 Element 的 dspatchEvent(eventObj) 方法來觸發事件,以一開始的例子來說,就是:按鈕物件.dspatchEvent(前二步驟建出的 Event 物件)

转载于:https://my.oschina.net/wolfx/blog/626289

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值