事件---模拟事件

一、前言

  1. 事件经常由用户操作或通过其它浏览器功能来触发。但是,也可以使用JavaScript在任意时刻来触发特定的事件,而此时的事件就如同浏览器创建的事件一样。
  2. 在测试Web应用程序,模拟触发事件是一种极其有用的技术.

二、DOM中的事件模拟

  1. 在document对象上使用creatEvent()方法创建event对象。参数是要创建的事件类型的字符串。
    • DOM2:字符串都使用英文复数形式
    • DOM3:单数
    • UIEvents:UI事件(鼠标事件和键盘事件都继承自UI事件)
    • MouseEvents:鼠标事件
    • MutationEvents:DOM变动事件
    • HTMLEvents:HTML事件
  2. 使用与事件有关的信息对其初始化
  3. 触发事件。使用dispatchEvent()方法,参数为触发事件的event对象。所有支持事件的DOM节点都支持这个方法

1.模拟鼠标事件

  1. 创建对象后返回的对象有一个initMouseEvent()方法,用于指定与该鼠标事件有关的信息。这个方法接收15个参数,分别与鼠标事件中每个典型的属性一一对应。

    var event=document.createEvent("MouseEvents");
    event.initMouseEvent("click",true,true,document.defaultView,0,0,0,0,0,false,false,false,false,0,null);
    btn.dispatchEvent(event);

2.模拟键盘事件

  1. 创建对象后返回的对象有一个initKeyEvent()方法。
  2. DOM3规定,调用createEvent(“keyboardEvent”)就可以创建一个键盘事件。
  3. 在firefox中,调用createEvent(“keyEvents”)
  4. 在其他浏览器中,则需要创建一个通用的事件,然后再向事件对象中添加键盘事件特有的信息。

    var event=document.createEvent("Events");
    event.initEvent(type,bubbles,cancelable);
    event.view=document.defaultView;
    ...
    textbox.dispatchEvent(event);

3.自定义DOM事件

  1. 自定义事件不是由DOM原生触发的,它的目的是让开发人员创建自己的事件。
  2. 创建新的自定义事件,可以调用createEvent(“CustomEvent”)
  3. 返回的对象有一个initCustomEvent()方法。

三、ie中的时间模拟

  1. 思路:先创建event对象,然后为其指相应的信息,然后触发
  2. 创建:document.createEventObject(),不接收参数,结果会返回一个通用的event对象。
  3. 手工添加所有信息。
  4. 在目标上调用fireEvent()方法。参数:事件处理程序名称和event对象,会自动为event对象添加srcElement和type属性
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值