事件触发的模拟步骤

Step 1. document.createEvent(eventType)

eventType 共5种类型:Events、HTMLEvents、UIEevents、MouseEvents、MutationEvents。

● Events :所有的事件。
● HTMLEvents:abort、blur、change、error、focus、load、reset、resize、scroll、select、submit、unload。
● UIEevents:DOMActivate、DOMFocusIn、DOMFocusOut、keydown、keypress、keyup。
● MouseEvents:click、mousedown、mousemove、mouseout、mouseover、mouseup。
● MutationEvents:DOMAttrModified、DOMNodeInserted、DOMNodeRemoved、DOMCharacterDataModified、DOMNodeInsertedIntoDocument、DOMNodeRemovedFromDocument、DOMSubtreeModified。

Step 2. 初始化事件

● 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)

Step 3. 触发事件

● targetObj.dispatchEvent:Firefox、Chrome、IE9&IE9+
● targetObj.fireEvent:IE(使用 fireEvent 时不需要进行事件的创建和初始化)

使用实例(以IE为例)

● //使用dispatchEvent
● 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);

● //使用fireEvent
● var obj = document.getElementById('someID');
● obj.fireEvent("onclick");

下面是我写的一个模拟鼠标单击事件的函数:
function fireClick(linkId) {

var fireOnThis = document.getElementById(linkId);
    if (document.createEvent) {
        //共5种类型:Events、HTMLEvents、UIEevents、MouseEvents、MutationEvents。
        var evObj = document.createEvent('MouseEvents');
        evObj.initEvent('click', true, false);
        fireOnThis.dispatchEvent(evObj);
    }
    else if (document.createEventObject) {
        fireOnThis.fireEvent('onclick');
    }
}

JavaScript 模拟事件触发相关推荐

  1. python制作界面怎么触发事件_python模拟事件触发机制详解

    本文实例为大家分享了python模拟事件触发机制的具体代码,供大家参考,具体内容如下 EventManager.py # -*- encoding: UTF-8 -*- # 系统模块 from que ...

  2. 探索 Flutter 模拟事件触发 | 开发者说·DTalk

    本文原作者: 张风捷特烈,原‍文发布于: Juejin https://juejin.cn/post/7057680571157184549 如果可以模拟 PointerEvent 进行分发,那么在应 ...

  3. python事件触发机制_python模拟事件触发机制详解

    本文实例为大家分享了python模拟事件触发机制的具体代码,供大家参考,具体内容如下 EventManager.py # -*- encoding: UTF-8 -*- # 系统模块 from que ...

  4. JavaScript之事件触发on和事件监听addEvent及addEventListener的区别和作用

    一.on事件 为dom节点添加多个on事件只会执行最后的那个事件,因为最后的指定的on事件指向最后的那个函数,代码如下所示: function method1(){console.log('我是方法1 ...

  5. javascript 模拟按键事件 触发输入框oninput事件

    记录下解决textarea 在js赋值后不生效的问题 我要实现的是网页聊天框模拟输入一段话,然后js触发点击发送事件 然而在使用js直接赋值之后,textarea并没有收到值 document.que ...

  6. JavaScript 中的内存和性能、模拟事件(读书笔记思维导图)

    由于事件处理程序可以为现代 Web 应用程序提供交互能力,因此许多开发人员会不分青红皂白地向页面中添加大量的处理程序.在 JavaScript 中,添加到页面上的事件处理程序数量将直接关系到页面的整体 ...

  7. javascript模拟点击事件--实现视频自动播放

    背景      这两年一直在做浏览器开发相关的工作,我们所做的浏览器禁用了视频自动播放功能,以实现视频预加载功能:浏览器在视频播放时为了实现视频秒开效果(就是一点击页面里的播放按钮就立即开始播放,而不 ...

  8. javascript模拟键盘按键事件,支持最新DOM3标准(Chrome亲测)。

    需求 打算在页面中自动填写账号密码,直接给文本框input元素赋值的方式无法触发键盘事件,导致数据不能提交(特殊的场景). 所以改用javascript的模拟按键事件,但是UIEvent.initUI ...

  9. 网页中嵌入JavaScript+事件触发程序

    嵌入方式: 1.JavaScript代码与HTML写在同一个文档中 JavaScript代码要放在<script>和</script>标签之间 而且整个JavaScript代码 ...

最新文章

  1. 微信怎么at所有人_任正非被遗漏的讲话:怎么做一个谦虚的领导者?
  2. java 获取java文件路径_Java怎么获取相对路径下所有的.java文件的信息
  3. python类、模块、包
  4. 查看Eclipse32位还是64位以及Eclipse的编译版本号,查看JDK是32位还是64位
  5. android 分支管理,Android Studio git使用,包括协同开发,分支管理。
  6. vue axios springboot 跨域
  7. IE8不兼容你的网页 怎么办? - 简单开启兼容模式
  8. 页面获取Spring Security登录用户
  9. c# asp.net mvc 开发的正方教务助手(一)
  10. video-js RTMP直播
  11. 特别好看的一个多接口api的图床源码
  12. 计算机网络与应用第三次笔记
  13. Mysql几种索引类型的区别及适用情况
  14. Android音视频架构-学习路线规划
  15. 传奇SF专用DBC2000数据库系统安装教程
  16. Spring代码实例系列-绪论
  17. iframe如何发送请求_如何实现高性能的在线 PDF 预览
  18. 用小马激活的千万小心!!
  19. 关于微信小程序中的取整
  20. 利用个人PC建设小型服务器

热门文章

  1. 2014.03.20入职第四天
  2. Windows 软件授权管理工具检验Windows7激活状态和许可证详细信息
  3. Citrix VDI攻略之三:DDC安装及配置
  4. golang之iota
  5. 数据结构 - 从二叉搜索树说到AVL树(一)之二叉搜索树的操作与详解(Java)
  6. HDFS数据定时采集demo 简单
  7. 嘿!不用太过于担心的单点故障
  8. 交叉线和直连线的线序,做法和使用场合
  9. 脑电信号特征提取常用算法(共空间模式CSP、小波变换DWT、功率谱密度PSD、AR模型)
  10. ubuntu 14.04 安装qq 2015