您现在的位置:首页 >> 前端 >> 内容

DOM中的事件模拟、模拟鼠标事件、模拟键盘事件、自定义DOM事件、ie中的时间模拟

时间:2017/12/2 12:00:15 点击:

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

前言

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

DOM中的事件模拟

在document对象上使用creatEvent()方法创建event对象。参数是要创建的事件类型的字符串。

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

模拟鼠标事件

创建对象后返回的对象有一个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);

模拟键盘事件

创建对象后返回的对象有一个initKeyEvent()方法。 DOM3规定,调用createEvent(“keyboardEvent”)就可以创建一个键盘事件。 在firefox中,调用createEvent(“keyEvents”)

在其他浏览器中,则需要创建一个通用的事件,然后再向事件对象中添加键盘事件特有的信息。

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

自定义DOM事件

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

ie中的时间模拟

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

Tags:DO OM M中 中的 
作者:网络 来源:new_life12